diff --git a/README.md b/README.md
index 4ff0c2d290..5548b1a29d 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ IfcOpenShell
IfcOpenShell is an open source ([LGPL]) software library for working with Industry Foundation Classes ([IFC]). Complete
-parsing support is provided for [IFC2x3 TC1], [IFC4 Add2 TC1], IFC4x1, IFC4x3, and IFC4x3. Extensive geometric support
+parsing support is provided for [IFC2x3 TC1], [IFC4 Add2 TC1], IFC4x1, IFC4x2, and IFC4x3. Extensive geometric support
is implemented for the IFC releases [IFC2x3 TC1] and [IFC4 Add2 TC1]. Extending with support for arbitrary IFC schemas
is possible at compile-time when using C++ and at run-time when using Python.
diff --git a/aws/lambda/Dockerfile b/aws/lambda/Dockerfile
new file mode 100644
index 0000000000..fcffa1e87b
--- /dev/null
+++ b/aws/lambda/Dockerfile
@@ -0,0 +1,40 @@
+# Dockerfile for Running AWS Lambda Function with Python and IfcOpenShell
+
+# Base image: Python 3.9 from AWS's public container registry
+FROM public.ecr.aws/docker/library/python:3.9 AS build
+
+# Set the location of your Lambda function code
+ARG FUNCTION_DIR="/var/task"
+
+# Install necessary packages
+RUN apt-get -y update && apt-get -y install unzip curl
+
+# Install AWS Lambda runtime interface client
+RUN pip install --target ${FUNCTION_DIR} awslambdaric
+
+# Set the IfcOpenShell build version (check available builds at: https://blenderbim.org/docs-python/ifcopenshell-python/installation.html)
+ARG IFC_OPENSHELL_BUILD="39-v0.7.0-476ab50"
+
+# Download and extract IfcOpenShell
+RUN curl https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-${IFC_OPENSHELL_BUILD}-linux64.zip -O && \
+ unzip ifcopenshell-python-${IFC_OPENSHELL_BUILD}-linux64.zip && \
+ mv ifcopenshell ${FUNCTION_DIR} && \
+ rm ifcopenshell-python-${IFC_OPENSHELL_BUILD}-linux64.zip
+
+# Copy the requirements file and install dependencies
+COPY requirements.txt .
+RUN pip install -r requirements.txt
+
+# Copy the Lambda function code
+COPY ./example_handler ${FUNCTION_DIR}/example_handler
+
+# Set the working directory
+WORKDIR ${FUNCTION_DIR}
+
+# Set the entrypoint for the Lambda function
+ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ]
+
+# Set the Python import path to the Lambda function handler
+# This path is relative to the root of the Lambda function code (FUNCTION_DIR)
+# Lambda invocation will look for this path
+CMD ["example_handler.extract_wall_psets_handler"]
diff --git a/aws/lambda/README.md b/aws/lambda/README.md
new file mode 100644
index 0000000000..0ba5a80273
--- /dev/null
+++ b/aws/lambda/README.md
@@ -0,0 +1,48 @@
+Dockerized AWS Lambda Function with Python and IfcOpenShell
+===========================================================
+
+This guide provides a Dockerfile and sample code to help you run an AWS Lambda function written in Python and utilizing IfcOpenShell library.
+
+Prerequisites
+-------------
+
+Make sure you have Docker installed on your machine. You can download Docker from the official website: [Docker Instalation](https://docs.docker.com/engine/install/)
+
+Getting Started
+---------------
+
+1. **Clone this repository to your local machine:**
+
+2. **Customize the Lambda function code:**
+
+ - Replace the sample Lambda function code in the `example_handler` directory with your own code.
+ - Update the import path in the Dockerfile's `CMD` instruction to match your Lambda function's handler function.
+
+3. **Install the required Python packages:**
+ - Edit the `requirements.txt` file and add any additional dependencies required by your Lambda function.
+
+4. **Build the Docker image:**
+
+ ```shell
+ $ docker build -t lambda-ifcopenshell .
+ ```
+
+5. **Run the Docker container:**
+
+ ```shell
+ $ docker run lambda-ifcopenshell
+ ```
+6. **Test lambda locally**
+
+ Follow the steps in this [guide](https://docs.aws.amazon.com/lambda/latest/dg/images-test.html)
+
+
+7. **Deploy to lambda**
+
+ This is beyond the scope of this example. Please refer to AWS documentation. Some tools that could be useful are - AWS CloudFormaton, AWS CDK, pulumi or terraform
+
+
+---------
+> Note: This is a superficial guide, in order to make this work for your usecase you will need a good understanding of other AWS services like SQS, S3, API Gateway etc.
+
+For more information on building lambda containers refer to this [guide](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html).
\ No newline at end of file
diff --git a/aws/lambda/example_handler/__init__.py b/aws/lambda/example_handler/__init__.py
new file mode 100644
index 0000000000..5256cb90a2
--- /dev/null
+++ b/aws/lambda/example_handler/__init__.py
@@ -0,0 +1,27 @@
+import ifcopenshell
+import ifcopenshell.util.element
+import boto3
+
+s3 = boto3.client('s3')
+
+def extract_wall_psets_handler(event, context):
+ print("Hello from lambda")
+ print("Event: {}".format(event))
+ print("Context: {}".format(context))
+
+ filename = event['body']['filename']
+
+ s3.download_file('my_ifc_files_bucket', filename, f'/tmp/{filename}')
+ ifc_file = ifcopenshell.open(f'/tmp/{filename}')
+ walls = ifc_file.by_type('IfcWall')
+
+ psets = []
+ for wall in walls:
+ wall_data = ifcopenshell.util.element.get_psets(wall)
+ wall_data['id'] = wall.GlobalId
+ psets.append(wall_data)
+
+ return {
+ 'statusCode': 200,
+ 'body': psets
+ }
\ No newline at end of file
diff --git a/aws/lambda/requirements.txt b/aws/lambda/requirements.txt
new file mode 100644
index 0000000000..1db657b6b3
--- /dev/null
+++ b/aws/lambda/requirements.txt
@@ -0,0 +1 @@
+boto3
\ No newline at end of file
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 2dc3730e32..39cdf8bf07 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -21,7 +21,7 @@ cmake_minimum_required(VERSION 3.1.3)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON) # not necessary, but encouraged
-project (IfcOpenShell VERSION 0.7.0)
+project(IfcOpenShell VERSION 0.7.0)
cmake_policy(SET CMP0048 NEW)
cmake_policy(SET CMP0074 NEW)
@@ -54,12 +54,14 @@ OPTION(USE_VLD "Use Visual Leak Detector for debugging memory leaks, MSVC-only."
OPTION(USE_MMAP "Adds a command line options to parse IFC files from memory mapped files using Boost.Iostreams" 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(NO_WARN "Disable all warnings" OFF)
OPTION(WASM_BUILD OFF)
if (${HAS_MAX})
OPTION(BUILD_IFCMAX "Build IfcMax, a 3ds Max plug-in, Windows-only." OFF)
endif()
if (${BUILD_CONVERT})
OPTION(GLTF_SUPPORT "Build IfcConvert with glTF support (requires json.hpp)." OFF)
+OPTION(USD_SUPPORT "Build IfcConvert with USD support (requires pixar's USD library)." OFF)
endif()
OPTION(USERSPACE_PYTHON_PREFIX "Installs IfcPython for the current user only instead of system-wide." OFF)
OPTION(ADD_COMMIT_SHA "Add commit sha and branch in version number, warning results in many rebuilds, requires git" OFF)
@@ -72,6 +74,14 @@ if(MSVC AND MSVC_PARALLEL_BUILD)
add_definitions("/MP")
endif()
+if(NO_WARN)
+ if(MSVC)
+ add_compile_options("/w")
+ else()
+ add_compile_options("-w")
+ endif()
+endif()
+
# QtViewer requires Qt5
OPTION(BUILD_QTVIEWER "Build IfcOpenShell Qt GUI Viewer" OFF)
include(GNUInstallDirs)
@@ -137,11 +147,6 @@ 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)
-endif()
-UNIFY_ENVVARS_AND_CACHE(BOOST_ROOT)
-UNIFY_ENVVARS_AND_CACHE(BOOST_LIBRARYDIR)
-
-if (NOT MINIMAL_BUILD)
UNIFY_ENVVARS_AND_CACHE(CGAL_INCLUDE_DIR)
UNIFY_ENVVARS_AND_CACHE(CGAL_LIBRARY_DIR)
UNIFY_ENVVARS_AND_CACHE(GMP_INCLUDE_DIR)
@@ -149,6 +154,8 @@ UNIFY_ENVVARS_AND_CACHE(GMP_LIBRARY_DIR)
UNIFY_ENVVARS_AND_CACHE(MPFR_INCLUDE_DIR)
UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR)
endif()
+UNIFY_ENVVARS_AND_CACHE(BOOST_ROOT)
+UNIFY_ENVVARS_AND_CACHE(BOOST_LIBRARYDIR)
if(WASM_BUILD)
# when using the nix/build-all.py build script we should not
@@ -170,6 +177,54 @@ add_definitions(-DWITH_GLTF)
set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_GLTF)
endif()
+# Add USD support to serializers
+if(NOT MINIMAL_BUILD AND 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)
+endif()
+
# Set INSTALL_RPATH for target
MACRO(SET_INSTALL_RPATHS _target _paths)
SET(${_target}_rpaths "")
@@ -633,6 +688,7 @@ ENDIF()
INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} ${JSON_INCLUDE_DIR} ${HDF5_INCLUDE_DIR}
+ ${USD_INCLUDE_DIR}
)
function(files_for_ifc_version IFC_VERSION RESULT_NAME)
@@ -841,9 +897,9 @@ endforeach()
add_library(Serializers ${SERIALIZERS_FILES})
set_target_properties(Serializers PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS ${CONVERT_PRECISION}" VERSION "0.6.0" SOVERSION "0.6")
-TARGET_LINK_LIBRARIES(Serializers ${SERIALIZER_SCHEMA_LIBRARIES} ${OPENCOLLADA_LIBRARIES})
+TARGET_LINK_LIBRARIES(Serializers ${SERIALIZER_SCHEMA_LIBRARIES} ${OPENCOLLADA_LIBRARIES} ${USD_LIBRARIES})
-endif(BUILD_CONVERT or BUILD_IFCPYTHON)
+endif(BUILD_CONVERT OR BUILD_IFCPYTHON)
if (BUILD_CONVERT)
@@ -854,7 +910,7 @@ set(IFCCONVERT_FILES ${IFCCONVERT_CPP_FILES} ${IFCCONVERT_H_FILES})
ADD_EXECUTABLE(IfcConvert ${IFCCONVERT_FILES})
set_target_properties(IfcConvert PROPERTIES COMPILE_FLAGS "${CONVERT_PRECISION}")
-TARGET_LINK_LIBRARIES(IfcConvert ${IFCOPENSHELL_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${HDF5_LIBRARIES})
+TARGET_LINK_LIBRARIES(IfcConvert ${IFCOPENSHELL_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${HDF5_LIBRARIES} ${USD_LIBRARIES})
if ((NOT WIN32) AND BUILD_SHARED_LIBS)
# Only set RPATHs when building shared libraries (i.e. IfcParse and
diff --git a/src/bcf/CITATION.cff b/src/bcf/CITATION.cff
new file mode 100644
index 0000000000..5ec89416e2
--- /dev/null
+++ b/src/bcf/CITATION.cff
@@ -0,0 +1,20 @@
+# This CITATION.cff file was generated with cffinit.
+# Visit https://bit.ly/cffinit to generate yours today!
+
+cff-version: 1.2.0
+title: bcf
+message: >-
+ If you use this software, please cite it using the
+ metadata from this file.
+type: software
+authors:
+ - name: "IfcOpenShell contributors"
+repository-code: >-
+ https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/bcf
+abstract: >-
+ Library to read and write BCF-XML and query OpenCDE
+ BCF-API modules
+keywords:
+ - BCF
+ - IFC
+license: LGPL-3.0-or-later
diff --git a/src/blenderbim/CITATION.cff b/src/blenderbim/CITATION.cff
new file mode 100644
index 0000000000..6e313e3db2
--- /dev/null
+++ b/src/blenderbim/CITATION.cff
@@ -0,0 +1,26 @@
+# This CITATION.cff file was generated with cffinit.
+# Visit https://bit.ly/cffinit to generate yours today!
+
+cff-version: 1.2.0
+title: BlenderBIM Add-on
+message: >-
+ If you use this software, please cite it using the
+ metadata from this file.
+type: software
+authors:
+ - name: "IfcOpenShell contributors"
+repository-code: >-
+ https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/blenderbim
+url: 'https://blenderbim.org/'
+repository-artifact: 'https://blenderbim.org/download.html'
+abstract: >-
+ Add-on to Blender providing a graphical native IFC
+ authoring platform
+keywords:
+ - IFC
+ - Blender
+ - NativeIFC
+license: GPL-3.0-or-later
+commit: 1fb6dac
+version: v0.0.230506
+date-released: '2023-05-23'
diff --git a/src/blenderbim/Makefile b/src/blenderbim/Makefile
index 65391c5e4e..b2dc8d672f 100644
--- a/src/blenderbim/Makefile
+++ b/src/blenderbim/Makefile
@@ -56,6 +56,7 @@ ifeq ($(PYVERSION), py37)
HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/linux-64/hpp-fcl-1.7.5-py37h5f1835d_0.tar.bz2
EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/linux-64/eigenpy-2.6.5-py37h95e2c48_0.tar.bz2
BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/linux-64/boost-1.74.0-py37h0379df6_3.tar.bz2
+QHULL_URL:=https://anaconda.org/conda-forge/qhull/2020.2/download/linux-64/qhull-2020.2-h4bd325d_2.tar.bz2
LXML_URL:=https://files.pythonhosted.org/packages/30/c0/d0526314971fc661b083ab135747dc68446a3022686da8c16d25fcf6ef07/lxml-4.6.3-cp37-cp37m-manylinux2014_x86_64.whl
SHAPELY_URL:=https://files.pythonhosted.org/packages/1d/a4/931d0780f31f3ea8c4f9ef6464a2825137c5241e6707a5fb03bef760a7eb/shapely-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
PILLOW_URL:=https://files.pythonhosted.org/packages/ed/d5/c2e84e1e36ab8ebea033921d5886a056c77e18bab5ab1051fcc22de2e8a2/Pillow-9.2.0-cp37-cp37m-manylinux_2_28_x86_64.whl
@@ -64,6 +65,7 @@ ifeq ($(PYVERSION), py39)
HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/linux-64/hpp-fcl-1.7.5-py39hbcdfc36_0.tar.bz2
EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/linux-64/eigenpy-2.6.5-py39h5aed9d1_0.tar.bz2
BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/linux-64/boost-1.74.0-py39h5472131_3.tar.bz2
+QHULL_URL:=https://anaconda.org/conda-forge/qhull/2020.2/download/linux-64/qhull-2020.2-h4bd325d_2.tar.bz2
LXML_URL:=https://files.pythonhosted.org/packages/19/d9/a69c6aff5673554df48120565a14a50eaa41d29ae03b02faa0b023666318/lxml-4.6.3-cp39-cp39-manylinux2014_x86_64.whl
SHAPELY_URL:=https://files.pythonhosted.org/packages/2d/f2/8ec281d357e8bb7d08dc8d727f0e4c8ef3dae7d3fa75c69c8e452bb82d50/shapely-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
PILLOW_URL:=https://files.pythonhosted.org/packages/01/61/3ff85fb4bb596ce3d223c8fcf93c8df5c12bc8899dfb4fb3cb1c5b20dd5f/Pillow-9.2.0-cp39-cp39-manylinux_2_28_x86_64.whl
@@ -72,6 +74,7 @@ ifeq ($(PYVERSION), py310)
HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.8.0/download/linux-64/hpp-fcl-1.8.0-py310hdaf7e41_1.tar.bz2
EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.11/download/linux-64/eigenpy-2.6.11-py310hf3e5c9c_0.tar.bz2
BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/linux-64/boost-1.74.0-py310h7c3ba0c_5.tar.bz2
+QHULL_URL:=https://anaconda.org/conda-forge/qhull/2020.2/download/linux-64/qhull-2020.2-h4bd325d_2.tar.bz2
LXML_URL:=https://files.pythonhosted.org/packages/25/1e/19b46d8e8881fe0df2e20945d51919eeb1817836d62a90efa8506530e45c/lxml-4.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
SHAPELY_URL:=https://files.pythonhosted.org/packages/a8/a5/403728b5614b28083f6424dfdefec5fcf58068495fb03bb08532671c642f/shapely-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
PILLOW_URL:=https://files.pythonhosted.org/packages/f6/51/320986ebd6d46a0e95c2240468ced73153b691ce07617078bcdf30c609ec/Pillow-9.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
@@ -86,6 +89,7 @@ ifeq ($(PYVERSION), py37)
HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/osx-64/hpp-fcl-1.7.5-py37h2d7f23a_0.tar.bz2
EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/osx-64/eigenpy-2.6.5-py37h0695097_0.tar.bz2
BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/osx-64/boost-1.74.0-py37hd79e0ac_3.tar.bz2
+QHULL_URL:=https://anaconda.org/conda-forge/qhull/2020.2/download/osx-64/qhull-2020.2-h940c156_2.tar.bz2
LXML_URL:=https://files.pythonhosted.org/packages/1e/3e/f0abc15d5dac50939bccc589aae336d5ead4c72e7ad1039a2e0f3630ea92/lxml-4.6.3-cp37-cp37m-macosx_10_9_x86_64.whl
SHAPELY_URL:=https://files.pythonhosted.org/packages/e6/7d/4923f27c340339e1c896c77cafc8ed672c8d381a025bbab6c6ddcba27e8f/shapely-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl
PILLOW_URL:=https://files.pythonhosted.org/packages/88/49/c26fc3b5b0e82bdc9d8751d6b939da29327b0d98f7c3b95a575cbfed2743/Pillow-9.2.0-cp37-cp37m-macosx_10_10_x86_64.whl
@@ -94,6 +98,7 @@ ifeq ($(PYVERSION), py39)
HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/osx-64/hpp-fcl-1.7.5-py39h1e32b98_0.tar.bz2
EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/osx-64/eigenpy-2.6.5-py39h5405915_0.tar.bz2
BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/osx-64/boost-1.74.0-py39ha641261_3.tar.bz2
+QHULL_URL:=https://anaconda.org/conda-forge/qhull/2020.2/download/osx-64/qhull-2020.2-h940c156_2.tar.bz2
LXML_URL:=https://files.pythonhosted.org/packages/b8/74/a71f7ad72e8db54ce899efab84507b801660750cbbfa6a39e6717557d36a/lxml-4.6.3-cp39-cp39-macosx_10_9_x86_64.whl
SHAPELY_URL:=https://files.pythonhosted.org/packages/36/a4/7e542a209f862f967d7cb8e939eff155f4294a27d17e16441fb8bdd51a2c/shapely-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl
PILLOW_URL:=https://files.pythonhosted.org/packages/88/7a/ddfe28b485b623361457d4783007c1f9ba83a87f93e7fec32f64793efb6c/Pillow-9.2.0-cp39-cp39-macosx_10_10_x86_64.whl
@@ -102,6 +107,7 @@ ifeq ($(PYVERSION), py310)
HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.8.0/download/osx-64/hpp-fcl-1.8.0-py310h651ac30_1.tar.bz2
EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.11/download/osx-64/eigenpy-2.6.11-py310hc03097c_0.tar.bz2
BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/osx-64/boost-1.74.0-py310h509978a_5.tar.bz2
+QHULL_URL:=https://anaconda.org/conda-forge/qhull/2020.2/download/osx-64/qhull-2020.2-h940c156_2.tar.bz2
LXML_URL:=https://files.pythonhosted.org/packages/a1/44/17b7dac7a18807d30e2fe10c3328c152808f5464565e230bfd0e77f178c6/lxml-4.8.0-cp310-cp310-macosx_10_15_x86_64.whl
SHAPELY_URL:=https://files.pythonhosted.org/packages/1f/2a/dc3353c2431cf53e8d04bb8fba27e584410ca3435c9c85f76d71bf0c0e80/shapely-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl
PILLOW_URL:=https://files.pythonhosted.org/packages/d8/60/b13c00d403f34110e96c1b5c0afa73ce461efe3fe960c3a7e3e7fe190d82/Pillow-9.2.0-cp310-cp310-macosx_10_10_x86_64.whl
@@ -117,6 +123,7 @@ ifeq ($(PYVERSION), py37)
HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/osx-64/hpp-fcl-1.7.5-py37h2d7f23a_0.tar.bz2
EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.5/download/osx-64/eigenpy-2.6.5-py37h0695097_0.tar.bz2
BOOST_URL:=https://anaconda.org/conda-forge/boost/1.74.0/download/osx-64/boost-1.74.0-py37hd79e0ac_3.tar.bz2
+QHULL_URL:=https://anaconda.org/conda-forge/qhull/2020.2/download/osx-arm64/qhull-2020.2-hc021e02_2.tar.bz2
LXML_URL:=https://anaconda.org/conda-forge/lxml/4.9.1/download/osx-64/lxml-4.9.1-py37h994c40b_0.tar.bz2
SHAPELY_URL:=https://files.pythonhosted.org/packages/e6/7d/4923f27c340339e1c896c77cafc8ed672c8d381a025bbab6c6ddcba27e8f/shapely-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl
PILLOW_URL:=https://files.pythonhosted.org/packages/aa/bc/21097cd891dd2fa02f2b3d767e02e883e026482e59d29975d1bc30024aa3/Pillow-9.2.0-cp39-cp39-macosx_11_0_arm64.whl
@@ -125,6 +132,7 @@ ifeq ($(PYVERSION), py39)
HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.7.5/download/osx-arm64/hpp-fcl-1.7.5-py39ha69f3c1_2.tar.bz2
EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.7/download/osx-arm64/eigenpy-2.6.7-py39ha69f3c1_0.tar.bz2
BOOST_URL:=https://anaconda.org/conda-forge/boost/1.78.0/download/osx-arm64/boost-1.78.0-py39h2550fe3_0.tar.bz2
+QHULL_URL:=https://anaconda.org/conda-forge/qhull/2020.2/download/osx-arm64/qhull-2020.2-hc021e02_2.tar.bz2
LXML_URL:=https://anaconda.org/conda-forge/lxml/4.9.1/download/osx-arm64/lxml-4.9.1-py39h9eb174b_0.tar.bz2
SHAPELY_URL:=https://files.pythonhosted.org/packages/ea/aa/45fbd031edf3149cb767d8b9f9db45d5faf0324d743c6b8fb0298cc022d0/shapely-2.0.1-cp39-cp39-macosx_11_0_arm64.whl
PILLOW_URL:=https://files.pythonhosted.org/packages/aa/bc/21097cd891dd2fa02f2b3d767e02e883e026482e59d29975d1bc30024aa3/Pillow-9.2.0-cp39-cp39-macosx_11_0_arm64.whl
@@ -133,6 +141,7 @@ ifeq ($(PYVERSION), py310)
HPPFCL_URL:=https://anaconda.org/conda-forge/hpp-fcl/1.8.0/download/osx-arm64/hpp-fcl-1.8.0-py310h5699539_2.tar.bz2
EIGENPY_URL:=https://anaconda.org/conda-forge/eigenpy/2.6.9/download/osx-arm64/eigenpy-2.6.9-py310habfc766_1.tar.bz2
BOOST_URL:=https://anaconda.org/conda-forge/boost/1.78.0/download/osx-arm64/boost-1.78.0-py310h4566fd1_0.tar.bz2
+QHULL_URL:=https://anaconda.org/conda-forge/qhull/2020.2/download/osx-arm64/qhull-2020.2-hc021e02_2.tar.bz2
LXML_URL:=https://anaconda.org/conda-forge/lxml/4.9.1/download/osx-arm64/lxml-4.9.1-py310h02f21da_0.tar.bz2
SHAPELY_URL:=https://files.pythonhosted.org/packages/ec/41/d59208743e737184e1b403e95a937aebb022b8459e99efbcd5208fc8be46/shapely-2.0.1-cp310-cp310-macosx_11_0_arm64.whl
PILLOW_URL:=https://files.pythonhosted.org/packages/0c/5f/117b653cad585f3aedfe0de996c292e67d4b020ed77f652e5a6c8c24f908/Pillow-9.2.0-cp310-cp310-macosx_11_0_arm64.whl
@@ -206,9 +215,7 @@ endif
# IfcOpenBot sometimes lags behind, so we hotfix the Python utilities
cp -r dist/working/IfcOpenShell-0.7.0/src/ifcopenshell-python/ifcopenshell/util/* dist/blenderbim/libs/site/packages/ifcopenshell/util/
cp -r dist/working/IfcOpenShell-0.7.0/src/ifcopenshell-python/ifcopenshell/api/* dist/blenderbim/libs/site/packages/ifcopenshell/api/
- cp dist/working/IfcOpenShell-0.7.0/src/ifcopenshell-python/ifcopenshell/entity_instance.py dist/blenderbim/libs/site/packages/ifcopenshell/
- cp dist/working/IfcOpenShell-0.7.0/src/ifcopenshell-python/ifcopenshell/file.py dist/blenderbim/libs/site/packages/ifcopenshell/
- cp dist/working/IfcOpenShell-0.7.0/src/ifcopenshell-python/ifcopenshell/validate.py dist/blenderbim/libs/site/packages/ifcopenshell/
+ cp dist/working/IfcOpenShell-0.7.0/src/ifcopenshell-python/ifcopenshell/*.py dist/blenderbim/libs/site/packages/ifcopenshell/
cp dist/working/IfcOpenShell-0.7.0/src/ifcopenshell-python/ifcopenshell/express/rule_executor.py dist/blenderbim/libs/site/packages/ifcopenshell/express/
# Provides bcf functionality
cp -r dist/working/IfcOpenShell-0.7.0/src/bcf/src/bcf dist/blenderbim/libs/site/packages/
@@ -425,6 +432,10 @@ ifeq ($(PLATFORM), macos)
cp -r dist/working/lib/$(PYLIBDIR)/site-packages/hppfcl dist/blenderbim/libs/site/packages/
cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
endif
+ifeq ($(PLATFORM), macosm1)
+ cp -r dist/working/lib/$(PYLIBDIR)/site-packages/hppfcl dist/blenderbim/libs/site/packages/
+ cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
+endif
ifeq ($(PLATFORM), win)
cp -r dist/working/Lib/site-packages/hppfcl dist/blenderbim/libs/site/packages/
cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/
@@ -441,11 +452,31 @@ endif
ifeq ($(PLATFORM), macos)
cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
endif
+ifeq ($(PLATFORM), macosm1)
+ cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
+endif
ifeq ($(PLATFORM), win)
cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/
endif
rm -rf dist/working
+ # Required by hpp-fcl except on Windows
+ifneq ($(PLATFORM), win)
+ mkdir dist/working
+ cd dist/working && wget $(QHULL_URL)
+ cd dist/working && tar -xf qhull*
+ifeq ($(PLATFORM), linux)
+ cp -r dist/working/lib/*.so* dist/blenderbim/libs/
+endif
+ifeq ($(PLATFORM), macos)
+ cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
+endif
+ifeq ($(PLATFORM), macosm1)
+ cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
+endif
+ rm -rf dist/working
+endif
+
# Required by hpp-fcl
mkdir dist/working
cd dist/working && wget $(EIGENPY_URL)
@@ -456,6 +487,9 @@ endif
ifeq ($(PLATFORM), macos)
cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
endif
+ifeq ($(PLATFORM), macosm1)
+ cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
+endif
ifeq ($(PLATFORM), win)
cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/
endif
@@ -471,6 +505,9 @@ endif
ifeq ($(PLATFORM), macos)
cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
endif
+ifeq ($(PLATFORM), macosm1)
+ cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
+endif
ifeq ($(PLATFORM), win)
# Uh, do nothing, apparently? No DLLs are shipped.
endif
@@ -486,6 +523,9 @@ endif
ifeq ($(PLATFORM), macos)
cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
endif
+ifeq ($(PLATFORM), macosm1)
+ cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
+endif
ifeq ($(PLATFORM), win)
cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/
endif
@@ -501,6 +541,9 @@ endif
ifeq ($(PLATFORM), macos)
cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
endif
+ifeq ($(PLATFORM), macosm1)
+ cp -r dist/working/lib/*.dylib dist/blenderbim/libs/
+endif
ifeq ($(PLATFORM), win)
cp -r dist/working/Library/bin/*.dll dist/blenderbim/libs/site/packages/hppfcl/
endif
diff --git a/src/blenderbim/blenderbim/bim/handler.py b/src/blenderbim/blenderbim/bim/handler.py
index 5c7888bb0f..3818b12144 100644
--- a/src/blenderbim/blenderbim/bim/handler.py
+++ b/src/blenderbim/blenderbim/bim/handler.py
@@ -98,8 +98,8 @@ def update_bim_tool_props():
if not obj:
return
mode = bpy.context.mode
- current_tool = bpy.context.workspace.tools.from_space_view3d_mode(mode).idname
- if current_tool != "bim.bim_tool":
+ current_tool = bpy.context.workspace.tools.from_space_view3d_mode(mode)
+ if not current_tool or current_tool.idname != "bim.bim_tool":
return
element = tool.Ifc.get_entity(obj)
if not element:
@@ -168,6 +168,9 @@ def refresh_ui_data():
except AttributeError:
pass
+ if isinstance(tool.Ifc.get(), ifcopenshell.sqlite):
+ tool.Ifc.get().clear_cache()
+
def purge_module_data():
from blenderbim.bim import modules
@@ -259,6 +262,12 @@ def get_application_version():
)
+def viewport_shading_changed_callback(area):
+ shading = area.spaces.active.shading.type
+ if shading == "RENDERED":
+ bpy.context.scene.BIMStylesProperties.active_style_type = "External"
+
+
@persistent
def setDefaultProperties(scene):
global global_subscription_owner
@@ -266,6 +275,21 @@ def setDefaultProperties(scene):
bpy.msgbus.subscribe_rna(
key=active_object_key, owner=global_subscription_owner, args=(), notify=active_object_callback
)
+
+ # subscribe to changes in viewport shading mode
+ # NOTE: couldn't find a way to make it work for new areas too
+ # it starts working for them after blender restart though
+ for screen in bpy.data.screens:
+ for area in screen.areas:
+ if area.type != "VIEW_3D":
+ continue
+ shading = area.spaces.active.shading
+ key = shading.path_resolve("type", False)
+
+ bpy.msgbus.subscribe_rna(
+ key=key, owner=global_subscription_owner, args=(area,), notify=viewport_shading_changed_callback
+ )
+
ifcopenshell.api.owner.settings.get_user = lambda ifc: core_owner.get_user(tool.Owner)
ifcopenshell.api.owner.settings.get_application = get_application
AuthoringData.type_thumbnails = {}
diff --git a/src/blenderbim/blenderbim/bim/helper.py b/src/blenderbim/blenderbim/bim/helper.py
index d0b19c6d1c..5b73dadd2a 100644
--- a/src/blenderbim/blenderbim/bim/helper.py
+++ b/src/blenderbim/blenderbim/bim/helper.py
@@ -273,6 +273,9 @@ def convert_property_group_from_si(property_group, skip_props=()):
setattr(property_group, prop_name, prop_value)
+# TODO this should move into ifcopenshell.util
+
+
class IfcHeaderExtractor:
def __init__(self, filepath: str):
self.filepath = filepath
@@ -284,6 +287,8 @@ class IfcHeaderExtractor:
return self.extract_ifc_spf(ifc_file)
elif extension.lower() == "ifczip":
return self.extract_ifc_zip()
+ elif extension.lower() == "ifcsqlite":
+ return {} # TODO
def extract_ifc_spf(self, ifc_file):
# https://www.steptools.com/stds/step/IS_final_p21e3.html#clause-8
diff --git a/src/blenderbim/blenderbim/bim/ifc.py b/src/blenderbim/blenderbim/bim/ifc.py
index fa8cbfa8df..0542b20512 100644
--- a/src/blenderbim/blenderbim/bim/ifc.py
+++ b/src/blenderbim/blenderbim/bim/ifc.py
@@ -120,6 +120,8 @@ class IfcStore:
@staticmethod
def load_file(path):
+ if not os.path.isfile(path):
+ return
extension = path.split(".")[-1]
if extension.lower() == "ifczip":
with tempfile.TemporaryDirectory() as unzipped_path:
@@ -130,7 +132,9 @@ class IfcStore:
return
elif extension.lower() == "ifcxml":
IfcStore.file = ifcopenshell.file(ifcopenshell.ifcopenshell_wrapper.parse_ifcxml(path))
- elif extension.lower() == "ifc":
+ elif bpy.context.scene.BIMProjectProperties.should_stream:
+ IfcStore.file = ifcopenshell.open(path, should_stream=True)
+ else:
IfcStore.file = ifcopenshell.open(path)
@staticmethod
diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py
index 228b206136..8918e85826 100644
--- a/src/blenderbim/blenderbim/bim/import_ifc.py
+++ b/src/blenderbim/blenderbim/bim/import_ifc.py
@@ -187,7 +187,7 @@ class IfcImporter:
self.settings_native.set(self.settings_native.INCLUDE_CURVES, True)
self.settings_2d = ifcopenshell.geom.settings()
self.settings_2d.set(self.settings_2d.INCLUDE_CURVES, True)
- self.settings_2d.set(self.settings.STRICT_TOLERANCE, True)
+ self.settings_2d.set(self.settings_2d.STRICT_TOLERANCE, True)
self.project = None
self.has_existing_project = False
self.collections = {}
@@ -347,7 +347,8 @@ class IfcImporter:
self.element_types = set(self.file.by_type("IfcTypeProduct"))
if self.ifc_import_settings.has_filter and self.ifc_import_settings.should_filter_spatial_elements:
- self.spatial_elements = self.get_spatial_elements_filtered_by_elements(self.elements)
+ filtered_elements = self.elements | set(self.file.by_type("IfcGrid"))
+ self.spatial_elements = self.get_spatial_elements_filtered_by_elements(filtered_elements)
else:
if self.file.schema == "IFC2X3":
self.spatial_elements = set(self.file.by_type("IfcSpatialStructureElement"))
@@ -361,11 +362,13 @@ class IfcImporter:
while True:
results.add(spatial_element)
spatial_element = ifcopenshell.util.element.get_aggregate(spatial_element)
- if not spatial_element or spatial_element.is_a("IfcContext"):
+ if not spatial_element or spatial_element.is_a() in ("IfcProject", "IfcProjectLibrary"):
break
return results
def parse_native_elements(self):
+ if not self.ifc_import_settings.should_load_geometry:
+ return
for element in self.elements:
if self.is_native(element):
self.native_elements.add(element)
@@ -410,19 +413,19 @@ class IfcImporter:
return True
def is_native_swept_disk_solid(self, element, representations):
- # detect BBIM Railings to represent them with meshes and not curves
- if tool.Pset.get_element_pset(element, "BBIM_Railing"):
- return False
-
for representation in representations:
items = representation["raw"].Items or [] # Be forgiving of invalid IFCs because Revit :(
if len(items) == 1 and items[0].is_a("IfcSweptDiskSolid"):
+ if tool.Pset.get_element_pset(element, "BBIM_Railing"):
+ return False
return True
elif len(items) and ( # See #2508 why we accommodate for invalid IFCs here
items[0].is_a("IfcSweptDiskSolid")
and len({i.is_a() for i in items}) == 1
and len({i.Radius for i in items}) == 1
):
+ if tool.Pset.get_element_pset(element, "BBIM_Railing"):
+ return False
return True
return False
@@ -577,6 +580,8 @@ class IfcImporter:
return result
def create_grids(self):
+ if not self.ifc_import_settings.should_load_geometry:
+ return
grids = self.file.by_type("IfcGrid")
for grid in grids:
shape = None
@@ -622,34 +627,37 @@ class IfcImporter:
def create_element_type(self, element):
self.ifc_import_settings.logger.info("Creating object %s", element)
- representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW")
- if not representation:
- representation = ifcopenshell.util.representation.get_representation(element, "Plan", "Annotation")
- if not representation:
- representation = ifcopenshell.util.representation.get_representation(element, "Model", "Annotation")
mesh = None
- if representation:
- mesh_name = "{}/{}".format(representation.ContextOfItems.id(), representation.id())
- mesh = self.meshes.get(mesh_name)
- if mesh is None:
- shape = None
- try:
- shape = ifcopenshell.geom.create_shape(self.settings, representation)
- except:
+ if self.ifc_import_settings.should_load_geometry:
+ representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW")
+ if not representation:
+ representation = ifcopenshell.util.representation.get_representation(element, "Plan", "Annotation")
+ if not representation:
+ representation = ifcopenshell.util.representation.get_representation(element, "Model", "Annotation")
+ if representation:
+ mesh_name = "{}/{}".format(representation.ContextOfItems.id(), representation.id())
+ mesh = self.meshes.get(mesh_name)
+ if mesh is None:
+ shape = None
try:
- shape = ifcopenshell.geom.create_shape(self.settings_2d, representation)
+ shape = ifcopenshell.geom.create_shape(self.settings, representation)
except:
- self.ifc_import_settings.logger.error("Failed to generate shape for %s", element)
- if shape:
- mesh = self.create_mesh(element, shape)
- tool.Loader.link_mesh(shape, mesh)
- self.meshes[mesh_name] = mesh
+ try:
+ shape = ifcopenshell.geom.create_shape(self.settings_2d, representation)
+ except:
+ self.ifc_import_settings.logger.error("Failed to generate shape for %s", element)
+ if shape:
+ mesh = self.create_mesh(element, shape)
+ tool.Loader.link_mesh(shape, mesh)
+ self.meshes[mesh_name] = mesh
obj = bpy.data.objects.new(tool.Loader.get_name(element), mesh)
self.link_element(element, obj)
self.material_creator.create(element, obj, mesh)
self.type_products[element.GlobalId] = obj
def create_native_elements(self):
+ if not self.ifc_import_settings.should_load_geometry:
+ return
progress = 0
checkpoint = time.time()
total = len(self.native_elements)
@@ -691,21 +699,76 @@ class IfcImporter:
self.create_generic_elements(self.elements)
def create_generic_elements(self, elements):
+ if isinstance(self.file, ifcopenshell.sqlite):
+ return self.create_generic_sqlite_elements(elements)
+
# Based on my experience in viewing BIM models, representations are prioritised as follows:
# 1. 3D Body, 2. 2D Body, 3. 2D Plans / annotations, 4. Point clouds, 5. No representation
# If an element has a representation that doesn't follow 1, 2, 3, or 4, it will not show by default.
# The user can load them later if they want to view them.
- products = self.create_products(elements)
- elements -= products
- products = self.create_products(elements, settings=self.settings_curve)
- elements -= products
- products = self.create_products(elements, settings=self.settings_2d)
- elements -= products
- products = self.create_pointclouds(elements)
- elements -= products
- for element in elements:
+ if self.ifc_import_settings.should_load_geometry:
+ products = self.create_products(elements)
+ elements -= products
+ products = self.create_products(elements, settings=self.settings_curve)
+ elements -= products
+ products = self.create_products(elements, settings=self.settings_2d)
+ elements -= products
+ products = self.create_pointclouds(elements)
+ elements -= products
+
+ total = len(elements)
+ for i, element in enumerate(elements):
+ if i % 250 == 0:
+ print("{} / {} elements processed ...".format(i, total))
self.create_product(element)
+ def create_generic_sqlite_elements(self, elements):
+ self.geometry_cache = self.file.get_geometry([e.id() for e in elements])
+ for geometry_id, geometry in self.geometry_cache["geometry"].items():
+ mesh_name = tool.Loader.get_mesh_name(type("Geometry", (), {"id": geometry_id}))
+ mesh = bpy.data.meshes.new(mesh_name)
+
+ verts = geometry["verts"]
+ mesh["has_cartesian_point_offset"] = False
+
+ if geometry["faces"]:
+ num_vertices = len(verts) // 3
+ total_faces = len(geometry["faces"])
+ loop_start = range(0, total_faces, 3)
+ num_loops = total_faces // 3
+ loop_total = [3] * num_loops
+ num_vertex_indices = len(geometry["faces"])
+
+ mesh.vertices.add(num_vertices)
+ mesh.vertices.foreach_set("co", verts)
+ mesh.loops.add(num_vertex_indices)
+ mesh.loops.foreach_set("vertex_index", geometry["faces"])
+ mesh.polygons.add(num_loops)
+ mesh.polygons.foreach_set("loop_start", loop_start)
+ mesh.polygons.foreach_set("loop_total", loop_total)
+ mesh.update()
+ else:
+ e = geometry["edges"]
+ v = verts
+ vertices = [[v[i], v[i + 1], v[i + 2]] for i in range(0, len(v), 3)]
+ edges = [[e[i], e[i + 1]] for i in range(0, len(e), 2)]
+ mesh.from_pydata(vertices, edges, [])
+
+ mesh["ios_materials"] = geometry["materials"]
+ mesh["ios_material_ids"] = geometry["material_ids"]
+ self.meshes[mesh_name] = mesh
+
+ total = len(elements)
+ for i, element in enumerate(elements):
+ if i % 250 == 0:
+ print("{} / {} elements processed ...".format(i, total))
+ mesh = None
+ geometry_id = self.geometry_cache["shapes"][element.id()]["geometry"]
+ if geometry_id:
+ mesh_name = tool.Loader.get_mesh_name(type("Geometry", (), {"id": geometry_id}))
+ mesh = self.meshes.get(mesh_name)
+ self.create_product(element, mesh=mesh)
+
def create_products(self, products, settings=None):
if settings is None:
settings = self.settings
@@ -1342,14 +1405,11 @@ class IfcImporter:
obj.BIMObjectProperties.collection = self.project["blender"]
def create_collections(self):
- if self.ifc_import_settings.collection_mode == "DECOMPOSITION":
- self.create_decomposition_collections()
- elif self.ifc_import_settings.collection_mode == "SPATIAL_DECOMPOSITION":
- self.create_spatial_decomposition_collections()
-
- def create_decomposition_collections(self):
self.create_spatial_decomposition_collections()
- self.create_aggregate_collections()
+ if self.ifc_import_settings.collection_mode == "DECOMPOSITION":
+ self.create_aggregate_collections()
+ elif self.ifc_import_settings.collection_mode == "SPATIAL_DECOMPOSITION":
+ pass
def create_spatial_decomposition_collections(self):
for rel_aggregate in self.project["ifc"].IsDecomposedBy or []:
@@ -1478,183 +1538,18 @@ class IfcImporter:
if not blender_material:
name = style.Name or str(style.id())
blender_material = bpy.data.materials.new(name)
+ blender_material.use_fake_user = True
self.link_element(style, blender_material)
blender_material.BIMMaterialProperties.ifc_style_id = style.id()
self.material_creator.styles[style.id()] = blender_material
- rendering_style = None
- texture_style = None
-
- for surface_style in style.Styles:
- if surface_style.is_a() == "IfcSurfaceStyleShading":
- self.create_surface_style_shading(blender_material, surface_style)
- elif surface_style.is_a("IfcSurfaceStyleRendering"):
- rendering_style = surface_style
- self.create_surface_style_rendering(blender_material, surface_style)
- elif surface_style.is_a("IfcSurfaceStyleWithTextures"):
- texture_style = surface_style
-
- if rendering_style and texture_style:
- self.create_surface_style_with_textures(blender_material, rendering_style, texture_style)
-
- tool.Style.record_shading(blender_material)
-
- def create_surface_style_shading(self, blender_material, surface_style):
- alpha = 1.0
- # Transparency was added in IFC4
- if hasattr(surface_style, "Transparency") and surface_style.Transparency:
- alpha = 1 - surface_style.Transparency
- blender_material.diffuse_color = (
- surface_style.SurfaceColour.Red,
- surface_style.SurfaceColour.Green,
- surface_style.SurfaceColour.Blue,
- alpha,
- )
-
- def create_surface_style_rendering(self, blender_material, surface_style):
- self.create_surface_style_shading(blender_material, surface_style)
- if surface_style.ReflectanceMethod in ["PHYSICAL", "NOTDEFINED"]:
- blender_material.use_nodes = True
- bsdf = blender_material.node_tree.nodes["Principled BSDF"]
- if surface_style.DiffuseColour:
- if surface_style.DiffuseColour.is_a("IfcColourRgb"):
- bsdf.inputs["Base Color"].default_value = (
- surface_style.DiffuseColour.Red,
- surface_style.DiffuseColour.Green,
- surface_style.DiffuseColour.Blue,
- 1,
- )
- elif surface_style.DiffuseColour.is_a("IfcNormalisedRatioMeasure"):
- bsdf.inputs["Base Color"].default_value = (
- surface_style.SurfaceColour.Red * surface_style.DiffuseColour.wrappedValue,
- surface_style.SurfaceColour.Green * surface_style.DiffuseColour.wrappedValue,
- surface_style.SurfaceColour.Blue * surface_style.DiffuseColour.wrappedValue,
- 1,
- )
- if surface_style.SpecularColour and surface_style.SpecularColour.is_a("IfcNormalisedRatioMeasure"):
- bsdf.inputs["Metallic"].default_value = surface_style.SpecularColour.wrappedValue
- if surface_style.SpecularHighlight and surface_style.SpecularHighlight.is_a("IfcSpecularRoughness"):
- bsdf.inputs["Roughness"].default_value = surface_style.SpecularHighlight.wrappedValue
- if hasattr(surface_style, "Transparency") and surface_style.Transparency:
- bsdf.inputs["Alpha"].default_value = 1 - surface_style.Transparency
- blender_material.blend_method = "BLEND"
- elif surface_style.ReflectanceMethod == "FLAT":
- blender_material.use_nodes = True
-
- output = {n.type: n for n in blender_material.node_tree.nodes}.get("OUTPUT_MATERIAL", None)
- bsdf = blender_material.node_tree.nodes["Principled BSDF"]
-
- mix = blender_material.node_tree.nodes.new(type="ShaderNodeMixShader")
- mix.location = bsdf.location
- blender_material.node_tree.links.new(mix.outputs[0], output.inputs["Surface"])
-
- blender_material.node_tree.nodes.remove(bsdf)
-
- lightpath = blender_material.node_tree.nodes.new(type="ShaderNodeLightPath")
- lightpath.location = mix.location - mathutils.Vector((200, -200))
- blender_material.node_tree.links.new(lightpath.outputs[0], mix.inputs[0])
-
- bsdf = blender_material.node_tree.nodes.new(type="ShaderNodeBsdfTransparent")
- bsdf.location = mix.location - mathutils.Vector((200, 0))
- blender_material.node_tree.links.new(bsdf.outputs[0], mix.inputs[1])
-
- rgb = blender_material.node_tree.nodes.new(type="ShaderNodeRGB")
- rgb.location = mix.location - mathutils.Vector((200, 200))
- blender_material.node_tree.links.new(rgb.outputs[0], mix.inputs[2])
-
- if surface_style.DiffuseColour and surface_style.DiffuseColour.is_a("IfcColourRgb"):
- rgb.outputs[0].default_value = (
- surface_style.DiffuseColour.Red,
- surface_style.DiffuseColour.Green,
- surface_style.DiffuseColour.Blue,
- 1,
- )
-
- def create_surface_style_with_textures(self, blender_material, rendering_style, texture_style):
- for texture in texture_style.Textures:
- mode = getattr(texture, "Mode", None)
- node = None
-
- if texture.is_a("IfcImageTexture"):
- image_url = texture.URLReference
- if not os.path.abspath(texture.URLReference) and tool.Ifc.get_path():
- image_url = os.path.join(os.path.dirname(tool.Ifc.get_path()), texture.URLReference)
-
- if rendering_style.ReflectanceMethod in ["PHYSICAL", "NOTDEFINED"]:
- bsdf = blender_material.node_tree.nodes["Principled BSDF"]
- if mode == "NORMAL":
- normalmap = blender_material.node_tree.nodes.new(type="ShaderNodeNormalMap")
- normalmap.location = bsdf.location - mathutils.Vector((200, 0))
- blender_material.node_tree.links.new(normalmap.outputs[0], bsdf.inputs["Normal"])
-
- node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
- node.location = normalmap.location - mathutils.Vector((200, 0))
- image = bpy.data.images.load(image_url)
- image.colorspace_settings.name = "Non-Color"
- node.image = image
- blender_material.node_tree.links.new(node.outputs[0], normalmap.inputs["Color"])
- elif mode == "EMISSIVE":
- output = {n.type: n for n in blender_material.node_tree.nodes}.get("OUTPUT_MATERIAL", None)
-
- add = blender_material.node_tree.nodes.new(type="ShaderNodeAddShader")
- add.location = bsdf.location + mathutils.Vector((200, 0))
- blender_material.node_tree.links.new(bsdf.outputs[0], add.inputs[1])
- blender_material.node_tree.links.new(add.outputs[0], output.inputs[0])
-
- emission = blender_material.node_tree.nodes.new(type="ShaderNodeEmission")
- emission.location = add.location - mathutils.Vector((200, 0))
- blender_material.node_tree.links.new(emission.outputs[0], add.inputs[0])
-
- node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
- node.location = emission.location - mathutils.Vector((200, 0))
- image = bpy.data.images.load(image_url)
- node.image = image
- blender_material.node_tree.links.new(node.outputs[0], emission.inputs[0])
- elif mode == "METALLICROUGHNESS":
- separate = blender_material.node_tree.nodes.new(type="ShaderNodeSeparateRGB")
- separate.location = bsdf.location - mathutils.Vector((200, 0))
- blender_material.node_tree.links.new(separate.outputs[1], bsdf.inputs["Roughness"])
- blender_material.node_tree.links.new(separate.outputs[2], bsdf.inputs["Metallic"])
-
- node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
- node.location = separate.location - mathutils.Vector((200, 0))
- image = bpy.data.images.load(image_url)
- image.colorspace_settings.name = "Non-Color"
- node.image = image
- blender_material.node_tree.links.new(node.outputs[0], separate.inputs[0])
- elif mode == "OCCLUSION":
- # TODO work out how to implement glTF settings here
- # https://docs.blender.org/manual/en/dev/addons/import_export/scene_gltf2.html
- pass
- elif mode == "DIFFUSE":
- node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
- node.location = bsdf.location - mathutils.Vector((400, 0))
- image = bpy.data.images.load(image_url)
- node.image = image
- blender_material.node_tree.links.new(node.outputs[0], bsdf.inputs["Base Color"])
- blender_material.node_tree.links.new(node.outputs[1], bsdf.inputs["Alpha"])
- blender_material.blend_method = "BLEND"
- elif rendering_style.ReflectanceMethod == "FLAT":
- bsdf = blender_material.node_tree.nodes["Mix Shader"]
- if mode == "EMISSIVE":
- node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
- node.location = bsdf.location - mathutils.Vector((200, 0))
- image = bpy.data.images.load(image_url)
- node.image = image
- blender_material.node_tree.links.new(node.outputs[0], bsdf.inputs[2])
-
- if node and getattr(texture, "IsMappedBy", None):
- coordinates = texture.IsMappedBy[0]
- coord = blender_material.node_tree.nodes.new(type="ShaderNodeTexCoord")
- coord.location = node.location - mathutils.Vector((200, 0))
- if coordinates.is_a("IfcTextureCoordinateGenerator") and coordinates.Mode == "COORD":
- blender_material.node_tree.links.new(coord.outputs["Generated"], node.inputs["Vector"])
- elif coordinates.is_a("IfcTextureCoordinateGenerator") and coordinates.Mode == "COORD-EYE":
- blender_material.node_tree.links.new(coord.outputs["Camera"], node.inputs["Vector"])
- else:
- blender_material.node_tree.links.new(coord.outputs["UV"], node.inputs["Vector"])
+ style_elements = tool.Style.get_style_elements(blender_material)
+ if tool.Style.has_blender_external_style(style_elements):
+ blender_material.BIMStyleProperties.active_style_type = "External"
+ else:
+ blender_material.BIMStyleProperties.active_style_type = "Shading"
def place_objects_in_collections(self):
for ifc_definition_id, obj in self.added_data.items():
@@ -1729,7 +1624,10 @@ class IfcImporter:
return rel.RelatingGroup
def get_element_matrix(self, element):
- result = ifcopenshell.util.placement.get_local_placement(element.ObjectPlacement)
+ if isinstance(element, ifcopenshell.sqlite_entity):
+ result = self.geometry_cache["shapes"][element.id()]["matrix"]
+ else:
+ result = ifcopenshell.util.placement.get_local_placement(element.ObjectPlacement)
result[0][3] *= self.unit_scale
result[1][3] *= self.unit_scale
result[2][3] *= self.unit_scale
@@ -1886,6 +1784,7 @@ class IfcImporter:
mesh.polygons.add(num_loops)
mesh.polygons.foreach_set("loop_start", loop_start)
mesh.polygons.foreach_set("loop_total", loop_total)
+ mesh.polygons.foreach_set("use_smooth", [0] * total_faces)
mesh.update()
else:
e = geometry.edges
@@ -1962,6 +1861,7 @@ class IfcImportSettings:
self.should_use_cpu_multiprocessing = True
self.merge_mode = None
self.should_merge_materials_by_colour = False
+ self.should_load_geometry = True
self.should_use_native_meshes = False
self.should_clean_mesh = True
self.should_cache = True
@@ -1991,6 +1891,7 @@ class IfcImportSettings:
settings.should_use_cpu_multiprocessing = props.should_use_cpu_multiprocessing
settings.merge_mode = props.merge_mode
settings.should_merge_materials_by_colour = props.should_merge_materials_by_colour
+ settings.should_load_geometry = props.should_load_geometry
settings.should_use_native_meshes = props.should_use_native_meshes
settings.should_clean_mesh = props.should_clean_mesh
settings.should_cache = props.should_cache
diff --git a/src/blenderbim/blenderbim/bim/module/boundary/operator.py b/src/blenderbim/blenderbim/bim/module/boundary/operator.py
index cf747e6d67..5eb502edea 100644
--- a/src/blenderbim/blenderbim/bim/module/boundary/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/boundary/operator.py
@@ -35,6 +35,7 @@ from mathutils import Vector, Matrix
from blenderbim.bim.ifc import IfcStore
from blenderbim.bim.module.model.decorator import ProfileDecorator
from blenderbim.bim.module.boundary.decorator import BoundaryDecorator
+import blenderbim.core
def get_boundaries_collection(blender_space):
diff --git a/src/blenderbim/blenderbim/bim/module/cost/operator.py b/src/blenderbim/blenderbim/bim/module/cost/operator.py
index 50b42bd672..02c7b2e9a8 100644
--- a/src/blenderbim/blenderbim/bim/module/cost/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/cost/operator.py
@@ -163,7 +163,7 @@ class RemoveCostItem(bpy.types.Operator, tool.Ifc.Operator):
cost_item: bpy.props.IntProperty()
def _execute(self, context):
- core.remove_cost_item(tool.Ifc, tool.Cost, cost_item=tool.Ifc.get().by_id(self.cost_item))
+ core.remove_cost_item(tool.Ifc, tool.Cost, cost_item_id=self.cost_item)
class EnableEditingCostItem(bpy.types.Operator, tool.Ifc.Operator):
@@ -631,17 +631,19 @@ class ExportCostSchedules(bpy.types.Operator):
bl_description = "Export a cost schedule to a CSV, XSLX OR ODS file"
cost_schedule: bpy.props.IntProperty()
format: bpy.props.EnumProperty("Format", items=(("CSV", "CSV", ""), ("XLSX", "XLSX", ""), ("ODS", "ODS", "")))
+ filepath: bpy.props.StringProperty(subtype="FILE_PATH")
def execute(self, context):
cost_schedule = tool.Ifc.get().by_id(self.cost_schedule) if self.cost_schedule else None
- r = core.export_cost_schedules(tool.Cost, format=self.format, cost_schedule=cost_schedule)
+ r = core.export_cost_schedules(tool.Cost, filepath=self.filepath, format=self.format, cost_schedule=cost_schedule)
if isinstance(r, str):
self.report({"ERROR"}, r)
return {"FINISHED"}
def invoke(self, context, event):
wm = context.window_manager
- return wm.invoke_props_dialog(self)
+ wm.fileselect_add(self)
+ return {"RUNNING_MODAL"}
def draw(self, context):
self.layout.label(text="Choose a format")
diff --git a/src/blenderbim/blenderbim/bim/module/csv/operator.py b/src/blenderbim/blenderbim/bim/module/csv/operator.py
index 07a2206795..02b7fabe41 100644
--- a/src/blenderbim/blenderbim/bim/module/csv/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/csv/operator.py
@@ -150,14 +150,9 @@ class ExportIfcCsv(bpy.types.Operator):
selector = ifcopenshell.util.selector.Selector()
results = selector.parse(ifc_file, props.ifc_selector)
ifc_csv = ifccsv.IfcCsv()
- ifc_csv.output = self.filepath
- ifc_csv.attributes = [a.name for a in props.csv_attributes]
- ifc_csv.selector = selector
- if props.csv_delimiter == "CUSTOM":
- ifc_csv.delimiter = props.csv_custom_delimiter
- else:
- ifc_csv.delimiter = props.csv_delimiter
- ifc_csv.export(ifc_file, results)
+ attributes = [a.name for a in props.csv_attributes]
+ sep = props.csv_custom_delimiter if props.csv_delimiter == "CUSTOM" else props.csv_delimiter
+ ifc_csv.export(ifc_file, results, attributes, output=self.filepath, format=args.format, delimiter=sep)
return {"FINISHED"}
@@ -182,12 +177,8 @@ class ImportIfcCsv(bpy.types.Operator):
else:
ifc_file = ifcopenshell.open(props.csv_ifc_file)
ifc_csv = ifccsv.IfcCsv()
- ifc_csv.output = self.filepath
- if props.csv_delimiter == "CUSTOM":
- ifc_csv.delimiter = props.csv_custom_delimiter
- else:
- ifc_csv.delimiter = props.csv_delimiter
- ifc_csv.Import(ifc_file)
+ sep = props.csv_custom_delimiter if props.csv_delimiter == "CUSTOM" else props.csv_delimiter
+ ifc_csv.Import(ifc_file, self.filepath, delimiter=sep)
if not props.should_load_from_memory:
ifc_file.write(props.csv_ifc_file)
purge_module_data()
diff --git a/src/blenderbim/blenderbim/bim/module/drawing/annotation.py b/src/blenderbim/blenderbim/bim/module/drawing/annotation.py
index 8b6819ea68..1556461d38 100644
--- a/src/blenderbim/blenderbim/bim/module/drawing/annotation.py
+++ b/src/blenderbim/blenderbim/bim/module/drawing/annotation.py
@@ -45,7 +45,7 @@ class Annotator:
font.name = "OpenGost Type B TT"
obj.data.font = font
obj.data.BIMTextProperties.font_size = "2.5"
- collection = bpy.context.scene.camera.users_collection[0]
+ collection = bpy.context.scene.camera.BIMObjectProperties.collection
collection.objects.link(obj)
Annotator.resize_text(obj)
return obj
@@ -53,9 +53,10 @@ class Annotator:
@staticmethod
def resize_text(text_obj):
camera = None
- for obj in text_obj.users_collection[0].objects:
- if isinstance(obj.data, bpy.types.Camera):
- camera = obj
+ group = tool.Drawing.get_drawing_group(tool.Ifc.get_entity(text_obj))
+ for element in tool.Drawing.get_drawing_elements(group):
+ if element.is_a("IfcAnnotation") and element.ObjectType == "DRAWING":
+ camera = tool.Ifc.get_object(element)
break
if not camera:
return
@@ -112,7 +113,7 @@ class Annotator:
co1, _, _, _ = Annotator.get_placeholder_coords(camera)
matrix_world = camera.matrix_world.copy()
matrix_world.translation = co1
- collection = camera.users_collection[0]
+ collection = camera.BIMObjectProperties.collection
if object_type == "TEXT":
obj = bpy.data.objects.new(object_type, None)
diff --git a/src/blenderbim/blenderbim/bim/module/drawing/helper.py b/src/blenderbim/blenderbim/bim/module/drawing/helper.py
index edc6ce4a60..562be3aaae 100644
--- a/src/blenderbim/blenderbim/bim/module/drawing/helper.py
+++ b/src/blenderbim/blenderbim/bim/module/drawing/helper.py
@@ -269,7 +269,7 @@ def get_active_drawing(scene):
props = scene.DocProperties
try:
camera = tool.Ifc.get_object(tool.Ifc.get().by_id(props.active_drawing_id))
- return camera.users_collection[0], camera
+ return camera.BIMObjectProperties.collection, camera
except:
return None, None
diff --git a/src/blenderbim/blenderbim/bim/module/drawing/operator.py b/src/blenderbim/blenderbim/bim/module/drawing/operator.py
index 1caab1cc64..38b7e75827 100644
--- a/src/blenderbim/blenderbim/bim/module/drawing/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/drawing/operator.py
@@ -150,7 +150,7 @@ class CreateDrawing(bpy.types.Operator):
"Creates/refreshes a .svg drawing based on currently active camera.\n\n"
+ "SHIFT+CLICK to print all selected drawings"
)
- print_all: bpy.props.BoolProperty(name="Print All", default=False)
+ print_all: bpy.props.BoolProperty(name="Print All", default=False, options={"SKIP_SAVE"})
@classmethod
def poll(cls, context):
@@ -158,12 +158,9 @@ class CreateDrawing(bpy.types.Operator):
def invoke(self, context, event):
# printing all drawings on shift+click
+ # make sure to use SKIP_SAVE on property, otherwise it might get stuck
if event.type == "LEFTMOUSE" and event.shift:
self.print_all = True
- else:
- # can't rely on default value since the line above
- # will set the value to `True` for all future operator calls
- self.print_all = False
return self.execute(context)
def execute(self, context):
@@ -177,7 +174,7 @@ class CreateDrawing(bpy.types.Operator):
for drawing_id in drawings_to_print:
if self.print_all:
- bpy.ops.bim.activate_drawing(drawing=drawing_id)
+ bpy.ops.bim.activate_drawing(drawing=drawing_id, camera_view_point=False)
self.camera = context.scene.camera
self.camera_element = tool.Ifc.get_entity(self.camera)
@@ -220,7 +217,7 @@ class CreateDrawing(bpy.types.Operator):
open_with_user_command(context.preferences.addons["blenderbim"].preferences.svg_command, svg_path)
if self.print_all:
- bpy.ops.bim.activate_drawing(drawing=original_drawing_id)
+ bpy.ops.bim.activate_drawing(drawing=original_drawing_id, camera_view_point=False)
return {"FINISHED"}
def get_camera_dimensions(self):
@@ -288,7 +285,7 @@ class CreateDrawing(bpy.types.Operator):
bpy.ops.render.render(write_still=True)
else:
previous_visibility = {}
- for obj in self.camera.users_collection[0].objects:
+ for obj in self.camera.BIMObjectProperties.collection.objects:
if bpy.context.view_layer.objects.get(obj.name):
previous_visibility[obj.name] = obj.hide_get()
obj.hide_set(True)
@@ -1191,16 +1188,13 @@ class SelectAllDrawings(bpy.types.Operator):
bl_label = "Select All Drawings"
view: bpy.props.StringProperty()
bl_description = "Select all drawings in the drawing list.\n\n" + "SHIFT+CLICK to deselect all drawings"
- select_all: bpy.props.BoolProperty(name="Open All", default=False)
+ select_all: bpy.props.BoolProperty(name="Open All", default=False, options={"SKIP_SAVE"})
def invoke(self, context, event):
# deselect all drawings on shift+click
+ # make sure to use SKIP_SAVE on property, otherwise it might get stuck
if event.type == "LEFTMOUSE" and event.shift:
self.select_all = False
- else:
- # can't rely on default value since the line above
- # will set the value to `True` for all future operator calls
- self.select_all = True
return self.execute(context)
def execute(self, context):
@@ -1219,16 +1213,13 @@ class OpenDrawing(bpy.types.Operator):
+ 'or using "svg_command" from the BlenderBIM preferences (if provided).\n\n'
+ "SHIFT+CLICK to open all selected drawings"
)
- open_all: bpy.props.BoolProperty(name="Open All", default=False)
+ open_all: bpy.props.BoolProperty(name="Open All", default=False, options={"SKIP_SAVE"})
def invoke(self, context, event):
# opening all drawings on shift+click
+ # make sure to use SKIP_SAVE on property, otherwise it might get stuck
if event.type == "LEFTMOUSE" and event.shift:
self.open_all = True
- else:
- # can't rely on default value since the line above
- # will set the value to `True` for all future operator calls
- self.open_all = False
return self.execute(context)
def execute(self, context):
@@ -1306,13 +1297,30 @@ class ActivateDrawing(bpy.types.Operator):
bl_idname = "bim.activate_drawing"
bl_label = "Activate Drawing"
bl_options = {"REGISTER", "UNDO"}
- bl_description = "Activates the selected drawing view"
+ bl_description = "Activates the selected drawing view.\n\n" + "ALT+CLICK to keep the viewport position"
+
drawing: bpy.props.IntProperty()
+ camera_view_point: bpy.props.BoolProperty(name="Camera View Point", default=True, options={"SKIP_SAVE"})
+
+ def invoke(self, context, event):
+ # keep the viewport position on alt+click
+ # make sure to use SKIP_SAVE on property, otherwise it might get stuck
+ if event.type == "LEFTMOUSE" and event.alt:
+ self.camera_view_point = False
+ return self.execute(context)
def execute(self, context):
drawing = tool.Ifc.get().by_id(self.drawing)
dprops = bpy.context.scene.DocProperties
+
+ if not self.camera_view_point:
+ viewport_position = tool.Blender.get_viewport_position()
+
core.activate_drawing_view(tool.Ifc, tool.Drawing, drawing=drawing)
+
+ if not self.camera_view_point:
+ tool.Blender.set_viewport_position(viewport_position)
+
dprops.active_drawing_id = self.drawing
# reset DrawingsData to reload_drawing_styles work correctly
DrawingsData.is_loaded = False
@@ -1350,7 +1358,7 @@ class ResizeText(bpy.types.Operator):
# TODO: check undo redo
def execute(self, context):
- for obj in context.scene.camera.users_collection[0].objects:
+ for obj in context.scene.camera.BIMObjectProperties.collection.objects:
if isinstance(obj.data, bpy.types.TextCurve):
annotation.Annotator.resize_text(obj)
return {"FINISHED"}
@@ -1363,16 +1371,13 @@ class RemoveDrawing(bpy.types.Operator, Operator):
bl_description = "Remove currently selected drawing.\n\n" + "SHIFT+CLICK to remove all selected drawings"
drawing: bpy.props.IntProperty()
- remove_all: bpy.props.BoolProperty(name="Remove All", default=False)
+ remove_all: bpy.props.BoolProperty(name="Remove All", default=False, options={"SKIP_SAVE"})
def invoke(self, context, event):
# removing all selected drawings on shift+click
+ # make sure to use SKIP_SAVE on property, otherwise it might get stuck
if event.type == "LEFTMOUSE" and event.shift:
self.remove_all = True
- else:
- # can't rely on default value since the line above
- # will set the value to `True` for all future operator calls
- self.remove_all = False
return self.execute(context)
def _execute(self, context):
diff --git a/src/blenderbim/blenderbim/bim/module/drawing/prop.py b/src/blenderbim/blenderbim/bim/module/drawing/prop.py
index 99d5cef841..ed9791ddab 100644
--- a/src/blenderbim/blenderbim/bim/module/drawing/prop.py
+++ b/src/blenderbim/blenderbim/bim/module/drawing/prop.py
@@ -231,7 +231,7 @@ def toggleDecorations(self, context):
toggle = self.should_draw_decorations
if toggle:
# TODO: design a proper text variable templating renderer
- collection = context.scene.camera.users_collection[0]
+ collection = context.scene.camera.BIMObjectProperties.collection
for obj in collection.objects:
element = tool.Ifc.get_entity(obj)
if not element or not tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]):
diff --git a/src/blenderbim/blenderbim/bim/module/drawing/sheeter.py b/src/blenderbim/blenderbim/bim/module/drawing/sheeter.py
index bd90b50280..97aca24735 100644
--- a/src/blenderbim/blenderbim/bim/module/drawing/sheeter.py
+++ b/src/blenderbim/blenderbim/bim/module/drawing/sheeter.py
@@ -28,9 +28,12 @@ import blenderbim.tool as tool
import ifcopenshell.util.geolocation
from xml.dom import minidom
from mathutils import Vector
+import re
VIEW_TITLE_OFFSET_Y = 5
DEFAULT_POSITION = Vector((30, 30))
+SVG = "{http://www.w3.org/2000/svg}"
+XLINK = "{http://www.w3.org/1999/xlink}"
class SheetBuilder:
@@ -130,7 +133,6 @@ class SheetBuilder:
def update_sheet_drawing_sizes(self, sheet):
ET.register_namespace("", "http://www.w3.org/2000/svg")
- SVG = "{http://www.w3.org/2000/svg}"
layout_path = tool.Drawing.get_document_uri(sheet, "LAYOUT")
layout_tree = ET.parse(layout_path)
@@ -280,8 +282,61 @@ class SheetBuilder:
titleblock.append(g)
titleblock.remove(image)
+ def ensure_drawing_unique_styles(self, svg, drawing_id):
+ """ensures all drawing's classes and ids will be unique for the whole sheet
+ by adding `drawing_id` based prefix
+ """
+ prefix = f"d{drawing_id}" # just number doesn't work
+
+ # add .prefix class to all css selectors
+ style = svg.find(f"{SVG}defs/{SVG}style")
+ style_data = style.text
+ text = ""
+ brackets_level = 0
+ for l in style_data:
+ if l == "{":
+ if brackets_level == 0:
+ cur_line = text.splitlines()[-1]
+ text = text[: -len(cur_line)]
+ 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)
+ text += ", ".join(css_selectors) + " "
+ brackets_level += 1
+ elif l == "}":
+ brackets_level -= 1
+ text += l
+
+ # replace urls url(#marker) with url(#prefix-marker)
+ # since url(#marker.prefix) doesn't seem to work
+ text = re.sub(r"url\(#([^\)]+)\)", rf"url(#{prefix}-\1)", text)
+ style.text = text
+
+ for svg_element in svg.findall(f".//*"):
+ if svg_element.tag in (f"{SVG}style", f"{SVG}svg"):
+ continue
+ attrib = svg_element.attrib
+ # add "prefix-" to all ids
+ if "id" in attrib:
+ attrib["id"] = f"{prefix}-{attrib['id']}"
+ # add class "prefix" to all classes
+ if "class" in attrib:
+ attrib["class"] += f" {prefix}"
+ if svg_element.tag == f"{SVG}use":
+ href_attrib = f"{XLINK}href"
+ if href_attrib in attrib:
+ href = attrib[href_attrib]
+ if href.startswith("#"):
+ attrib[href_attrib] = f"#{prefix}-{href[1:]}"
+
+ return svg
+
def build_drawings(self, root, sheet):
for view in root.findall('{http://www.w3.org/2000/svg}g[@data-type="drawing"]'):
+ drawing_id = int(view.attrib["data-id"])
reference = tool.Ifc.get().by_id(int(view.attrib["data-id"]))
drawing = tool.Ifc.get().by_id(view.attrib["data-drawing"])
@@ -300,7 +355,9 @@ class SheetBuilder:
view_title = image
if foreground is not None:
- view.append(self.parse_embedded_svg(foreground, {}))
+ svg = self.parse_embedded_svg(foreground, {})
+ svg = self.ensure_drawing_unique_styles(svg, drawing_id)
+ view.append(svg)
if background is not None:
background_path = os.path.join(self.layout_dir, self.get_href(background))
diff --git a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py
index 85b1a7f21c..2f3ed0e2a4 100644
--- a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py
+++ b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py
@@ -100,6 +100,9 @@ class SvgWriter:
if not os.path.exists(resource_path):
resource_basename = os.path.basename(resource_path)
ootb_resource = os.path.join(bpy.context.scene.BIMProperties.data_dir, "assets", resource_basename)
+ print(
+ f"WARNING. Couldn't find {resource} for the drawing by the path: {resource_path}. Default BBIM resource will be copied from {ootb_resource}"
+ )
if os.path.exists(ootb_resource):
shutil.copy(ootb_resource, resource_path)
self.resource_paths[resource] = resource_path
@@ -121,23 +124,35 @@ class SvgWriter:
self.height = self.raw_height * self.svg_scale
def add_stylesheet(self):
- if not self.resource_paths["Stylesheet"] or not os.path.exists(self.resource_paths["Stylesheet"]):
+ path = self.resource_paths["Stylesheet"]
+ if not path:
return
- with open(self.resource_paths["Stylesheet"], "r") as stylesheet:
+ 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()))
def add_markers(self):
- if not self.resource_paths["Markers"] or not os.path.exists(self.resource_paths["Markers"]):
+ path = self.resource_paths["Markers"]
+ if not path:
return
- tree = ET.parse(self.resource_paths["Markers"])
+ if not os.path.exists(path):
+ print(f"WARNING. Couldn't find markers for the drawing by the path: {path}")
+ return
+ tree = ET.parse(path)
root = tree.getroot()
for child in root:
self.svg.defs.add(External(child))
def add_symbols(self):
- if not self.resource_paths["Symbols"] or not os.path.exists(self.resource_paths["Symbols"]):
+ path = self.resource_paths["Symbols"]
+ if not path:
return
- tree = ET.parse(self.resource_paths["Symbols"])
+ if not os.path.exists(path):
+ print(f"WARNING. Couldn't find symbols for the drawing by the path: {path}")
+ return
+ tree = ET.parse(path)
root = tree.getroot()
for child in root:
self.svg.defs.add(External(child))
@@ -148,9 +163,15 @@ class SvgWriter:
return External(xml_symbol) if xml_symbol else None
def add_patterns(self):
- if not self.resource_paths["Patterns"] or not os.path.exists(self.resource_paths["Patterns"]):
+ path = self.resource_paths["Patterns"]
+ if not path:
return
- tree = ET.parse(self.resource_paths["Patterns"])
+ if not os.path.exists(path):
+ print(f"WARNING. Couldn't find patterns for the drawing by the path: {path}")
+ return
+ if not path or not os.path.exists(path):
+ return
+ tree = ET.parse(path)
root = tree.getroot()
for child in root:
self.svg.defs.add(External(child))
@@ -839,6 +860,10 @@ class SvgWriter:
text_tag.add(tspan)
line_number += 1
+ if add_fill_bg:
+ # return line_number back to the original value
+ line_number -= len(text_lines)
+
if "fill-bg" in classes:
add_text_tag(True)
add_text_tag(False)
diff --git a/src/blenderbim/blenderbim/bim/module/geometry/__init__.py b/src/blenderbim/blenderbim/bim/module/geometry/__init__.py
index 8ae77d88a0..93adf2b5fb 100644
--- a/src/blenderbim/blenderbim/bim/module/geometry/__init__.py
+++ b/src/blenderbim/blenderbim/bim/module/geometry/__init__.py
@@ -63,6 +63,8 @@ def register():
bpy.types.Scene.BIMGeometryProperties = bpy.props.PointerProperty(type=prop.BIMGeometryProperties)
bpy.types.OBJECT_PT_transform.append(ui.BIM_PT_transform)
bpy.types.VIEW3D_MT_object.append(ui.object_menu)
+ bpy.types.OUTLINER_MT_object.append(ui.outliner_menu)
+ bpy.types.VIEW3D_MT_object_context_menu.append(ui.object_menu)
wm = bpy.context.window_manager
if wm.keyconfigs.addon:
km = wm.keyconfigs.addon.keymaps.new(name="Object Mode", space_type="EMPTY")
@@ -90,6 +92,8 @@ def register():
def unregister():
bpy.types.VIEW3D_MT_object.remove(ui.object_menu)
bpy.types.OBJECT_PT_transform.remove(ui.BIM_PT_transform)
+ bpy.types.OUTLINER_MT_object.remove(ui.outliner_menu)
+ bpy.types.VIEW3D_MT_object_context_menu.remove(ui.outliner_menu)
del bpy.types.Scene.BIMGeometryProperties
del bpy.types.Object.BIMGeometryProperties
wm = bpy.context.window_manager
diff --git a/src/blenderbim/blenderbim/bim/module/geometry/data.py b/src/blenderbim/blenderbim/bim/module/geometry/data.py
index aae9f6c06b..0c95c61d2f 100644
--- a/src/blenderbim/blenderbim/bim/module/geometry/data.py
+++ b/src/blenderbim/blenderbim/bim/module/geometry/data.py
@@ -104,24 +104,44 @@ class ConnectionsData:
def connections(cls):
results = []
element = tool.Ifc.get_entity(bpy.context.active_object)
- for rel in getattr(element, "ConnectedTo", []):
+
+ connected_to = getattr(element, "ConnectedTo", [])
+ connected_from = getattr(element, "ConnectedFrom", [])
+
+ for rel in connected_to:
+ if element.is_a("IfcDistributionPort"):
+ related_element = rel.RelatedPort
+ related_element_connection_type = ""
+ else:
+ related_element = rel.RelatedElement
+ related_element_connection_type = rel.RelatedConnectionType
+
results.append(
{
"id": rel.id(),
"is_relating": True,
- "Name": rel.RelatedElement.Name or "Unnamed",
- "ConnectionType": rel.RelatingConnectionType,
+ "Name": related_element.Name or "Unnamed",
+ "ConnectionType": related_element_connection_type,
}
)
- for rel in getattr(element, "ConnectedFrom", []):
+
+ for rel in connected_from:
+ if element.is_a("IfcDistributionPort"):
+ relating_element = rel.RelatingPort
+ relating_element_connection_type = ""
+ else:
+ relating_element = rel.RelatingElement
+ relating_element_connection_type = rel.RelatingConnectionType
+
results.append(
{
"id": rel.id(),
"is_relating": False,
- "Name": rel.RelatingElement.Name or "Unnamed",
- "ConnectionType": rel.RelatedConnectionType,
+ "Name": relating_element.Name or "Unnamed",
+ "ConnectionType": relating_element_connection_type,
}
)
+
return results
diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py
index a82fdbddb3..ad706d579e 100644
--- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py
@@ -373,6 +373,7 @@ class OverrideDelete(bpy.types.Operator):
bl_options = {"REGISTER", "UNDO"}
use_global: bpy.props.BoolProperty(default=False)
confirm: bpy.props.BoolProperty(default=True)
+ is_batch: bpy.props.BoolProperty(name="Is Batch", default=False)
@classmethod
def poll(cls, context):
@@ -380,7 +381,7 @@ class OverrideDelete(bpy.types.Operator):
def execute(self, context):
# Deep magick from the dawn of time
- if IfcStore.get_file():
+ if tool.Ifc.get():
return IfcStore.execute_ifc_operator(self, context)
for obj in context.selected_objects:
bpy.data.objects.remove(obj)
@@ -389,21 +390,55 @@ class OverrideDelete(bpy.types.Operator):
return {"FINISHED"}
def invoke(self, context, event):
- if self.confirm:
+ if tool.Ifc.get():
+ total_elements = len(tool.Ifc.get().wrapped_data.entity_names())
+ total_polygons = sum([len(o.data.polygons) for o in context.selected_objects if o.type == "MESH"])
+ # These numbers are a bit arbitrary, but basically batching is only
+ # really necessary on large models and large geometry removals.
+ self.is_batch = total_elements > 500000 and total_polygons > 2000
+ if self.is_batch:
+ return context.window_manager.invoke_props_dialog(self)
+ elif self.confirm:
+ return context.window_manager.invoke_confirm(self, event)
+ elif self.confirm:
return context.window_manager.invoke_confirm(self, event)
self.confirm = True
return self.execute(context)
+ def draw(self, context):
+ row = self.layout.row()
+ row.label(text="Warning: Faster deletion will use more memory.", icon="ERROR")
+ row = self.layout.row()
+ row.prop(self, "is_batch", text="Enable Faster Deletion")
+
def _execute(self, context):
+ if self.is_batch:
+ ifcopenshell.util.element.batch_remove_deep2(tool.Ifc.get())
for obj in context.selected_objects:
if tool.Ifc.get_entity(obj):
tool.Geometry.delete_ifc_object(obj)
else:
bpy.data.objects.remove(obj)
+ if self.is_batch:
+ old_file = tool.Ifc.get()
+ old_file.end_transaction()
+ new_file = ifcopenshell.util.element.unbatch_remove_deep2(tool.Ifc.get())
+ new_file.begin_transaction()
+ tool.Ifc.set(new_file)
+ self.transaction_data = {"old_file": old_file, "new_file": new_file}
+ IfcStore.add_transaction_operation(self)
# Required otherwise gizmos are still visible
context.view_layer.objects.active = None
return {"FINISHED"}
+ def rollback(self, data):
+ tool.Ifc.set(data["old_file"])
+ data["old_file"].undo()
+
+ def commit(self, data):
+ data["old_file"].redo()
+ tool.Ifc.set(data["new_file"])
+
class OverrideOutlinerDelete(bpy.types.Operator):
bl_idname = "bim.override_outliner_delete"
@@ -526,6 +561,8 @@ class OverrideDuplicateMove(bpy.types.Operator):
collection.objects.link(new_obj)
obj.select_set(False)
new_obj.select_set(True)
+ # clear object's collection so it will be able to have it's own
+ new_obj.BIMObjectProperties.collection = None
# Copy the actual class
new = blenderbim.core.root.copy_class(tool.Ifc, tool.Collector, tool.Geometry, tool.Root, obj=new_obj)
if new:
@@ -738,13 +775,17 @@ class OverrideModeSetEdit(bpy.types.Operator):
if not obj:
continue
+ if not obj.data:
+ obj.select_set(False)
+ continue
+
element = tool.Ifc.get_entity(obj)
if not element:
continue
# We are switching from OBJECT to EDIT mode.
usage_type = tool.Model.get_usage_type(element)
- if usage_type:
+ if usage_type is not None and usage_type not in ("PROFILE", "LAYER3"):
# Parametric objects shall not be edited as meshes as they
# can be modified to be incompatible with the parametric
# constraints.
@@ -755,6 +796,36 @@ class OverrideModeSetEdit(bpy.types.Operator):
if not representation:
continue
+ if (
+ tool.Pset.get_element_pset(element, "BBIM_Door")
+ or tool.Pset.get_element_pset(element, "BBIM_Window")
+ or tool.Pset.get_element_pset(element, "BBIM_Stair")
+ ):
+ obj.select_set(False)
+ continue
+ if usage_type == "PROFILE":
+ if len(context.selected_objects) == 1:
+ bpy.ops.bim.hotkey(hotkey="A_E", description="")
+ return {"FINISHED"}
+ else:
+ self.report({"INFO"}, "Only a single profile-based representation can be edited at a time.")
+ obj.select_set(False)
+ continue
+ if (
+ tool.Geometry.is_profile_based(obj.data)
+ or usage_type == "LAYER3"
+ or tool.Geometry.is_swept_profile(representation)
+ or tool.Pset.get_element_pset(element, "BBIM_Roof")
+ or tool.Pset.get_element_pset(element, "BBIM_Railing")
+ ):
+ if len(context.selected_objects) == 1:
+ bpy.ops.bim.hotkey(hotkey="S_E", description="")
+ return {"FINISHED"}
+ else:
+ self.report({"INFO"}, "Only a single profile-based representation can be edited at a time.")
+ obj.select_set(False)
+ continue
+
if tool.Geometry.is_meshlike(representation):
if getattr(element, "HasOpenings", None):
# Mesh elements with openings must disable openings
@@ -866,7 +937,22 @@ class OverrideModeSetObject(bpy.types.Operator):
if not element:
continue
- if obj.data.BIMMeshProperties.ifc_definition_id:
+ if tool.Profile.is_editing_profile():
+ profile_id = context.scene.BIMProfileProperties.active_profile_id
+ if profile_id:
+ profile = tool.Ifc.get().by_id(profile_id)
+ if tool.Ifc.get_object(profile): # We are editing an arbitrary profile
+ bpy.ops.bim.edit_arbitrary_profile()
+ elif tool.Pset.get_element_pset(element, "BBIM_Railing"):
+ bpy.ops.bim.cad_hotkey(hotkey="S_Q")
+ elif tool.Pset.get_element_pset(element, "BBIM_Roof"):
+ bpy.ops.bim.cad_hotkey(hotkey="S_Q")
+ elif tool.Model.get_usage_type(element) == "PROFILE":
+ bpy.ops.bim.edit_extrusion_axis()
+ else:
+ bpy.ops.bim.edit_extrusion_profile()
+ return self.execute(context)
+ elif obj.data.BIMMeshProperties.ifc_definition_id:
if not tool.Geometry.has_geometric_data(obj):
self.is_valid = False
self.should_save = False
diff --git a/src/blenderbim/blenderbim/bim/module/geometry/ui.py b/src/blenderbim/blenderbim/bim/module/geometry/ui.py
index f3227829e7..26d1a9ddc6 100644
--- a/src/blenderbim/blenderbim/bim/module/geometry/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/geometry/ui.py
@@ -24,10 +24,14 @@ from blenderbim.bim.module.geometry.data import RepresentationsData, Connections
def object_menu(self, context):
+ self.layout.separator()
self.layout.operator("bim.override_object_duplicate_move", icon="PLUGIN")
self.layout.operator("bim.override_object_delete", icon="PLUGIN")
self.layout.operator("bim.override_paste_buffer", icon="PLUGIN")
+def outliner_menu(self, context):
+ self.layout.separator()
+ self.layout.operator("bim.override_outliner_delete", icon='X')
class BIM_PT_representations(Panel):
bl_label = "IFC Representations"
diff --git a/src/blenderbim/blenderbim/bim/module/group/__init__.py b/src/blenderbim/blenderbim/bim/module/group/__init__.py
index 8dda1b596b..3f51d01082 100644
--- a/src/blenderbim/blenderbim/bim/module/group/__init__.py
+++ b/src/blenderbim/blenderbim/bim/module/group/__init__.py
@@ -33,6 +33,7 @@ classes = (
operator.ToggleGroup,
operator.UnassignGroup,
operator.UpdateGroup,
+ operator.SelectGroupElements,
prop.ExpandedGroups,
prop.Group,
prop.BIMGroupProperties,
diff --git a/src/blenderbim/blenderbim/bim/module/group/operator.py b/src/blenderbim/blenderbim/bim/module/group/operator.py
index 2e04c960fa..27aa6ec8e7 100644
--- a/src/blenderbim/blenderbim/bim/module/group/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/group/operator.py
@@ -275,3 +275,19 @@ class UpdateGroup(bpy.types.Operator, tool.Ifc.Operator):
)
bpy.ops.bim.load_groups()
return {"FINISHED"}
+
+
+class SelectGroupElements(bpy.types.Operator):
+ bl_idname = "bim.select_group_elements"
+ bl_label = "Select Group elements"
+ bl_options = {"REGISTER", "UNDO"}
+ group: bpy.props.IntProperty()
+
+ @classmethod
+ def poll(cls, context):
+ return bool(tool.Ifc.get() and context.active_object)
+
+ def execute(self, context):
+ elements = tool.Drawing.get_group_elements(tool.Ifc.get().by_id(self.group))
+ tool.Spatial.select_products(elements)
+ return {"FINISHED"}
diff --git a/src/blenderbim/blenderbim/bim/module/group/ui.py b/src/blenderbim/blenderbim/bim/module/group/ui.py
index 16cf339f6e..874d239bf2 100644
--- a/src/blenderbim/blenderbim/bim/module/group/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/group/ui.py
@@ -107,6 +107,7 @@ class BIM_PT_object_groups(Panel):
for group in ObjectGroupsData.data["groups"]:
row = self.layout.row(align=True)
row.label(text=group["name"])
+ row.operator("bim.select_group_elements", text="", icon="RESTRICT_SELECT_OFF").group = group["id"]
op = row.operator("bim.unassign_group", text="", icon="X")
op.group = group["id"]
diff --git a/src/blenderbim/blenderbim/bim/module/ifcgit/__init__.py b/src/blenderbim/blenderbim/bim/module/ifcgit/__init__.py
index 30325f789f..27352bbc3e 100644
--- a/src/blenderbim/blenderbim/bim/module/ifcgit/__init__.py
+++ b/src/blenderbim/blenderbim/bim/module/ifcgit/__init__.py
@@ -21,10 +21,12 @@ from . import ui, prop, operator
classes = (
operator.AddFileToRepo,
+ operator.AddRemote,
operator.AddTag,
operator.CloneRepo,
operator.CommitChanges,
operator.CreateRepo,
+ operator.DeleteRemote,
operator.DeleteTag,
operator.DiscardUncommitted,
operator.DisplayRevision,
diff --git a/src/blenderbim/blenderbim/bim/module/ifcgit/data.py b/src/blenderbim/blenderbim/bim/module/ifcgit/data.py
index 4373aa8df5..2a74731d02 100644
--- a/src/blenderbim/blenderbim/bim/module/ifcgit/data.py
+++ b/src/blenderbim/blenderbim/bim/module/ifcgit/data.py
@@ -15,6 +15,11 @@ class IfcGitData:
data = {}
is_loaded = False
+ @classmethod
+ def make_sure_is_loaded(cls):
+ if not cls.is_loaded:
+ cls.load()
+
@classmethod
def load(cls):
cls.data = {
@@ -29,6 +34,10 @@ class IfcGitData:
"name_ifc": cls.name_ifc(),
"dir_name": cls.dir_name(),
"base_name": cls.base_name(),
+ "working_dir": cls.working_dir(),
+ "untracked_files": cls.untracked_files(),
+ "is_detached": cls.is_detached(),
+ "active_branch_name": cls.active_branch_name(),
"is_dirty": cls.is_dirty(),
"commit": cls.commit(),
"current_revision": cls.current_revision(),
@@ -113,6 +122,27 @@ class IfcGitData:
return os.path.basename(path_ifc)
return None
+ @classmethod
+ def working_dir(cls):
+ if cls.repo():
+ return cls.repo().working_dir
+
+ @classmethod
+ def untracked_files(cls):
+ if cls.repo():
+ return cls.repo().untracked_files
+ return []
+
+ @classmethod
+ def is_detached(cls):
+ if cls.repo():
+ return cls.repo().head.is_detached
+
+ @classmethod
+ def active_branch_name(cls):
+ if cls.repo() and not cls.is_detached():
+ return cls.repo().active_branch.name
+
@classmethod
def is_dirty(cls):
if cls.repo() and cls.git_exe():
diff --git a/src/blenderbim/blenderbim/bim/module/ifcgit/operator.py b/src/blenderbim/blenderbim/bim/module/ifcgit/operator.py
index b60bbd163f..2d1c5094b9 100644
--- a/src/blenderbim/blenderbim/bim/module/ifcgit/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/ifcgit/operator.py
@@ -15,6 +15,7 @@ class CreateRepo(bpy.types.Operator):
@classmethod
def poll(cls, context):
+ IfcGitData.make_sure_is_loaded()
path_ifc = IfcGitData.data["path_ifc"]
if not os.path.isfile(path_ifc):
return False
@@ -42,6 +43,7 @@ class AddFileToRepo(bpy.types.Operator):
@classmethod
def poll(cls, context):
+ IfcGitData.make_sure_is_loaded()
path_ifc = IfcGitData.data["path_ifc"]
if not os.path.isfile(path_ifc):
return False
@@ -80,6 +82,7 @@ class CloneRepo(bpy.types.Operator):
props = context.scene.IfcGitProperties
core.clone_repo(tool.IfcGit, props.remote_url, props.local_folder, self)
+ props.remote_url = ""
refresh()
return {"FINISHED"}
@@ -107,6 +110,7 @@ class CommitChanges(bpy.types.Operator):
@classmethod
def poll(cls, context):
+ IfcGitData.make_sure_is_loaded()
props = context.scene.IfcGitProperties
repo = IfcGitData.data["repo"]
if props.commit_message == "":
@@ -128,7 +132,7 @@ class CommitChanges(bpy.types.Operator):
def execute(self, context):
repo = IfcGitData.data["repo"]
- core.commit_changes(tool.IfcGit, tool.Ifc, repo, context)
+ core.commit_changes(tool.IfcGit, tool.Ifc, repo)
bpy.ops.ifcgit.refresh()
refresh()
return {"FINISHED"}
@@ -143,7 +147,10 @@ class AddTag(bpy.types.Operator):
@classmethod
def poll(cls, context):
+ IfcGitData.make_sure_is_loaded()
props = context.scene.IfcGitProperties
+ if props.new_tag_name == "":
+ return False
repo = IfcGitData.data["repo"]
if repo and (
not tool.IfcGit.is_valid_ref_format(props.new_tag_name)
@@ -187,8 +194,9 @@ class RefreshGit(bpy.types.Operator):
@classmethod
def poll(cls, context):
+ IfcGitData.make_sure_is_loaded()
repo = IfcGitData.data["repo"]
- if repo != None and repo.heads:
+ if repo:
return True
return False
@@ -207,9 +215,15 @@ class DisplayRevision(bpy.types.Operator):
bl_idname = "ifcgit.display_revision"
bl_options = {"REGISTER"}
+ @classmethod
+ def poll(cls, context):
+ props = context.scene.IfcGitProperties
+ if props.ifcgit_commits:
+ return True
+
def execute(self, context):
- core.colourise_revision(tool.IfcGit, context)
+ core.colourise_revision(tool.IfcGit)
refresh()
return {"FINISHED"}
@@ -236,6 +250,12 @@ class SwitchRevision(bpy.types.Operator):
bl_idname = "ifcgit.switch_revision"
bl_options = {"REGISTER"}
+ @classmethod
+ def poll(cls, context):
+ props = context.scene.IfcGitProperties
+ if props.ifcgit_commits:
+ return True
+
def execute(self, context):
core.switch_revision(tool.IfcGit, tool.Ifc)
@@ -252,7 +272,9 @@ class Merge(bpy.types.Operator):
@classmethod
def poll(cls, context):
- if IfcGitData.data["ifcmerge_exe"]:
+ IfcGitData.make_sure_is_loaded()
+ props = context.scene.IfcGitProperties
+ if IfcGitData.data["ifcmerge_exe"] and props.ifcgit_commits and not IfcGitData.data["is_detached"]:
return True
return False
@@ -276,8 +298,7 @@ class Push(bpy.types.Operator):
props = context.scene.IfcGitProperties
repo = IfcGitData.data["repo"]
- remote = repo.remotes[props.select_remote]
- remote.push(refspec=IfcGitData.data["repo"].active_branch.name)
+ core.push(tool.IfcGit, repo, props.select_remote, self)
return {"FINISHED"}
@@ -297,6 +318,52 @@ class Fetch(bpy.types.Operator):
return {"FINISHED"}
+class AddRemote(bpy.types.Operator):
+ """Add a remote repository"""
+
+ bl_label = "Add Remote"
+ bl_idname = "ifcgit.add_remote"
+ bl_options = {"REGISTER"}
+
+ @classmethod
+ def poll(cls, context):
+ IfcGitData.make_sure_is_loaded()
+ props = context.scene.IfcGitProperties
+ repo = IfcGitData.data["repo"]
+ if (
+ not repo
+ or not tool.IfcGit.is_valid_ref_format(props.remote_name)
+ or not props.remote_url
+ or props.remote_name in [remote.name for remote in repo.remotes]
+ ):
+ return False
+ return True
+
+ def execute(self, context):
+
+ repo = IfcGitData.data["repo"]
+ core.add_remote(tool.IfcGit, repo)
+ bpy.ops.ifcgit.refresh()
+ refresh()
+ return {"FINISHED"}
+
+
+class DeleteRemote(bpy.types.Operator):
+ """Delete the selected remote"""
+
+ bl_label = "Delete Remote"
+ bl_idname = "ifcgit.delete_remote"
+ bl_options = {"REGISTER"}
+
+ def execute(self, context):
+
+ repo = IfcGitData.data["repo"]
+ core.delete_remote(tool.IfcGit, repo)
+ bpy.ops.ifcgit.refresh()
+ refresh()
+ return {"FINISHED"}
+
+
class ObjectLog(bpy.types.Operator):
"""Displays Git log of selected object"""
diff --git a/src/blenderbim/blenderbim/bim/module/ifcgit/prop.py b/src/blenderbim/blenderbim/bim/module/ifcgit/prop.py
index 7a1655be24..c34b2f6e84 100644
--- a/src/blenderbim/blenderbim/bim/module/ifcgit/prop.py
+++ b/src/blenderbim/blenderbim/bim/module/ifcgit/prop.py
@@ -7,7 +7,7 @@ from bpy.props import (
IntProperty,
EnumProperty,
)
-from blenderbim.bim.module.ifcgit.data import IfcGitData, refresh
+from blenderbim.bim.module.ifcgit.data import IfcGitData
def git_branches(self, context):
@@ -22,8 +22,9 @@ def git_branches(self, context):
IfcGitData.data["branch_names"] = ["main"] + IfcGitData.data["branch_names"]
if IfcGitData.data["remotes"]:
- props = context.scene.IfcGitProperties
- IfcGitData.data["branch_names"] += [r.name for r in IfcGitData.data["remotes"][props.select_remote].refs]
+ for remote in IfcGitData.data["remotes"]:
+ for remote_branch in remote.refs:
+ IfcGitData.data["branch_names"].append(remote_branch.name)
return [(myname, myname, myname) for myname in IfcGitData.data["branch_names"]]
@@ -113,6 +114,11 @@ class IfcGitProperties(PropertyGroup):
description="An optional human readable description of this tag",
default="",
)
+ remote_name: StringProperty(
+ name="New remote name",
+ description="A local name for a remote Git repository",
+ default="",
+ )
remote_url: StringProperty(
name="Git URL",
description="A URL pointing to a Git repository",
diff --git a/src/blenderbim/blenderbim/bim/module/ifcgit/ui.py b/src/blenderbim/blenderbim/bim/module/ifcgit/ui.py
index 536c14e852..286e900adc 100644
--- a/src/blenderbim/blenderbim/bim/module/ifcgit/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/ifcgit/ui.py
@@ -1,6 +1,6 @@
import bpy
import time
-from blenderbim.bim.module.ifcgit.data import IfcGitData, refresh
+from blenderbim.bim.module.ifcgit.data import IfcGitData
class IFCGIT_PT_panel(bpy.types.Panel):
@@ -34,8 +34,8 @@ class IFCGIT_PT_panel(bpy.types.Panel):
if path_ifc:
if IfcGitData.data["repo"]:
name_ifc = IfcGitData.data["name_ifc"]
- row.label(text=IfcGitData.data["repo"].working_dir, icon="SYSTEM")
- if name_ifc in IfcGitData.data["repo"].untracked_files:
+ row.label(text=IfcGitData.data["working_dir"], icon="SYSTEM")
+ if name_ifc in IfcGitData.data["untracked_files"]:
row.operator(
"ifcgit.addfile",
text="Add '" + name_ifc + "' to repository",
@@ -79,7 +79,7 @@ class IFCGIT_PT_panel(bpy.types.Panel):
row = layout.row()
row.prop(props, "commit_message")
- if IfcGitData.data["repo"].head.is_detached:
+ if IfcGitData.data["is_detached"]:
row = layout.row()
row.label(text="HEAD is detached, commit will create a branch", icon="ERROR")
row.prop(props, "new_branch_name")
@@ -88,10 +88,10 @@ class IFCGIT_PT_panel(bpy.types.Panel):
row.operator("ifcgit.commit_changes", icon="GREASEPENCIL")
row = layout.row()
- if IfcGitData.data["repo"].head.is_detached:
+ if IfcGitData.data["is_detached"]:
row.label(text="Working branch: Detached HEAD")
else:
- row.label(text="Working branch: " + IfcGitData.data["repo"].active_branch.name)
+ row.label(text="Working branch: " + IfcGitData.data["active_branch_name"])
grouped = layout.row()
column = grouped.column()
@@ -120,8 +120,6 @@ class IFCGIT_PT_panel(bpy.types.Panel):
row = column.row()
row.operator("ifcgit.switch_revision", icon="CURRENT_FILE")
- # TODO operator to tag selected
-
row = column.row()
row.operator("ifcgit.merge", icon="EXPERIMENTAL", text="")
@@ -168,10 +166,19 @@ class IFCGIT_PT_panel(bpy.types.Panel):
row.prop(props, "select_remote", text="Select remote")
urls = IfcGitData.data["remote_urls"]
row.label(text=urls[props.select_remote])
+ row.operator("ifcgit.delete_remote", text="", icon="PANEL_CLOSE")
row = layout.row()
- row.operator("ifcgit.push", icon="EXPERIMENTAL")
+ row.operator("ifcgit.push", icon="EXPORT")
row.operator("ifcgit.fetch", icon="IMPORT")
+ box = layout.box()
+ row = box.row()
+ row.prop(props, "remote_name")
+ row = box.row()
+ row.prop(props, "remote_url")
+ row = box.row()
+ row.operator("ifcgit.add_remote", icon="ADD")
+
class COMMIT_UL_List(bpy.types.UIList):
"""List of Git commits"""
@@ -199,9 +206,9 @@ class COMMIT_UL_List(bpy.types.UIList):
refs += "{" + tag.name + "} "
if commit == current_revision:
- layout.label(text="[HEAD] " + refs + commit.message, icon="DECORATE_KEYFRAME")
+ layout.label(text="[HEAD] " + refs + commit.message.split("\n")[0], icon="DECORATE_KEYFRAME")
else:
- layout.label(text=refs + commit.message, icon="DECORATE_ANIMATE")
+ layout.label(text=refs + commit.message.split("\n")[0], icon="DECORATE_ANIMATE")
layout.label(text=time.strftime("%c", time.localtime(commit.committed_date)))
diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py
index 756b2d8e9b..a5f0f8df62 100644
--- a/src/blenderbim/blenderbim/bim/module/material/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/material/operator.py
@@ -56,7 +56,7 @@ class SelectByMaterial(bpy.types.Operator, tool.Ifc.Operator):
material: bpy.props.IntProperty()
def _execute(self, context):
- core.select_by_material(tool.Material, material=tool.Ifc.get().by_id(self.material))
+ core.select_by_material(tool.Material, tool.Spatial, material=tool.Ifc.get().by_id(self.material))
class EnableEditingMaterial(bpy.types.Operator, tool.Ifc.Operator):
@@ -174,67 +174,7 @@ class AssignMaterial(bpy.types.Operator, tool.Ifc.Operator):
def _execute(self, context):
objects = [bpy.data.objects.get(self.obj)] if self.obj else tool.Blender.get_selected_objects()
- active_obj = context.active_object
- active_object_material_type = self.material_type or active_obj.BIMObjectMaterialProperties.material_type
- material = tool.Ifc.get().by_id(int(active_obj.BIMObjectMaterialProperties.material))
- for obj in objects:
- element = tool.Ifc.get_entity(obj)
- if not element:
- continue
- ifcopenshell.api.run(
- "material.assign_material",
- tool.Ifc.get(),
- product=element,
- type=active_object_material_type,
- material=material,
- )
- assigned_material = ifcopenshell.util.element.get_material(element)
- if assigned_material.is_a("IfcMaterialConstituentSet"):
- if not assigned_material.MaterialConstituents:
- ifcopenshell.api.run(
- "material.add_constituent",
- tool.Ifc.get(),
- constituent_set=assigned_material,
- material=material,
- )
- elif assigned_material.is_a() == "IfcMaterialLayerSet":
- if not assigned_material.MaterialLayers:
- unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get())
- layer = ifcopenshell.api.run(
- "material.add_layer",
- tool.Ifc.get(),
- layer_set=assigned_material,
- material=material,
- )
- thickness = 0.1 # Arbitrary metric thickness for now
- layer.LayerThickness = thickness / unit_scale
- elif assigned_material.is_a("IfcMaterialProfileSet"):
- if not assigned_material.MaterialProfiles:
- named_profiles = [p for p in tool.Ifc.get().by_type("IfcProfileDef") if p.ProfileName]
- if named_profiles:
- profile = named_profiles[0]
- else:
- unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get())
- size = 0.5 / unit_scale
- profile = tool.Ifc.get().create_entity(
- "IfcRectangleProfileDef",
- ProfileName="New Profile",
- ProfileType="AREA",
- XDim=size,
- YDim=size,
- )
- material_profile = ifcopenshell.api.run(
- "material.add_profile",
- tool.Ifc.get(),
- profile_set=assigned_material,
- material=tool.Ifc.get().by_type("IfcMaterial")[0],
- )
- ifcopenshell.api.run(
- "material.assign_profile",
- tool.Ifc.get(),
- material_profile=material_profile,
- profile=profile,
- )
+ core.assign_material(tool.Ifc, tool.Material, material_type= self.material_type , objects=objects )
class UnassignMaterial(bpy.types.Operator, tool.Ifc.Operator):
@@ -245,12 +185,7 @@ class UnassignMaterial(bpy.types.Operator, tool.Ifc.Operator):
def _execute(self, context):
objects = [bpy.data.objects.get(self.obj)] if self.obj else tool.Blender.get_selected_objects()
- for obj in objects:
- element = tool.Ifc.get_entity(obj)
- if element:
- material = ifcopenshell.util.element.get_material(element, should_inherit=False)
- if "Usage" not in material.is_a():
- ifcopenshell.api.run("material.unassign_material", tool.Ifc.get(), product=element)
+ core.unassign_material(tool.Ifc, tool.Material, objects=objects )
class AddConstituent(bpy.types.Operator, tool.Ifc.Operator):
diff --git a/src/blenderbim/blenderbim/bim/module/misc/ui.py b/src/blenderbim/blenderbim/bim/module/misc/ui.py
index 278c8184e5..9fe4e178cc 100644
--- a/src/blenderbim/blenderbim/bim/module/misc/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/misc/ui.py
@@ -30,7 +30,6 @@ class BIM_PT_misc_utilities(bpy.types.Panel):
def draw(self, context):
layout = self.layout
props = context.scene.BIMMiscProperties
-
row = layout.split(factor=0.2, align=True)
row.prop(props, "override_colour", text="")
row.operator("bim.set_override_colour")
@@ -49,6 +48,8 @@ class BIM_PT_misc_utilities(bpy.types.Panel):
row.operator("bim.draw_system_arrows")
row = layout.row()
row.operator("bim.clean_wireframes")
+ row = layout.row()
+ row.operator("bim.patch_non_parametric_mep_segment")
row = layout.row(align=True)
row.operator("bim.enable_editing_sketch_extrusion_profile", text="Start Sketching")
diff --git a/src/blenderbim/blenderbim/bim/module/model/__init__.py b/src/blenderbim/blenderbim/bim/module/model/__init__.py
index e3237bdecc..e8d03ee05a 100644
--- a/src/blenderbim/blenderbim/bim/module/model/__init__.py
+++ b/src/blenderbim/blenderbim/bim/module/model/__init__.py
@@ -86,6 +86,7 @@ classes = (
profile.ExtendProfile,
profile.RecalculateProfile,
profile.Rotate90,
+ profile.PatchNonParametricMepSegment,
roof.GenerateHippedRoof,
slab.DisableEditingExtrusionProfile,
slab.DisableEditingSketchExtrusionProfile,
@@ -97,6 +98,7 @@ classes = (
slab.SetArcIndex,
space.GenerateSpace,
space.GenerateSpacesFromWalls,
+ space.ToggleSpaceVisibility,
prop.BIMModelProperties,
prop.BIMArrayProperties,
prop.BIMStairProperties,
@@ -105,7 +107,6 @@ classes = (
prop.BIMDoorProperties,
prop.BIMRailingProperties,
prop.BIMRoofProperties,
- ui.BIM_PT_authoring,
ui.BIM_PT_array,
ui.BIM_PT_stair,
ui.BIM_PT_sverchok,
@@ -115,7 +116,6 @@ classes = (
ui.BIM_PT_roof,
ui.LaunchTypeManager,
ui.BIM_MT_model,
- ui.BIM_PT_GridsSpatialManager,
ui.BIM_PT_Grids,
grid.BIM_OT_add_object,
stair.BIM_OT_add_object,
diff --git a/src/blenderbim/blenderbim/bim/module/model/door.py b/src/blenderbim/blenderbim/bim/module/model/door.py
index d9e0425bc1..99aa50f6c9 100644
--- a/src/blenderbim/blenderbim/bim/module/model/door.py
+++ b/src/blenderbim/blenderbim/bim/module/model/door.py
@@ -128,15 +128,16 @@ def update_door_modifier_representation(context):
)
# type attributes
- element.OperationType = props.door_type
+ if tool.Ifc.get_schema() != "IFC2X3":
+ element.OperationType = props.door_type
# occurences attributes
occurences = tool.Ifc.get_all_element_occurences(element)
for occurence in occurences:
- occurence.OverallWidth = props.overall_width
- occurence.OverallHeight = props.overall_height
+ occurence.OverallWidth = props.overall_width / si_conversion
+ occurence.OverallHeight = props.overall_height / si_conversion
- update_simple_openings(element, props.overall_width, props.overall_height)
+ update_simple_openings(element, props.overall_width / si_conversion, props.overall_height / si_conversion)
# TODO: move it out to tools
@@ -486,7 +487,8 @@ class BIM_OT_add_door(bpy.types.Operator, tool.Ifc.Operator):
element = blenderbim.core.root.assign_class(
tool.Ifc, tool.Collector, tool.Root, obj=obj, ifc_class="IfcDoor", should_add_representation=False
)
- element.PredefinedType = "DOOR"
+ if tool.Ifc.get_schema() != "IFC2X3":
+ element.PredefinedType = "DOOR"
bpy.ops.object.select_all(action="DESELECT")
bpy.context.view_layer.objects.active = None
@@ -507,8 +509,8 @@ class AddDoor(bpy.types.Operator, tool.Ifc.Operator):
element = tool.Ifc.get_entity(obj)
props = obj.BIMDoorProperties
- if element.is_a() not in ("IfcDoor", "IfcDoorType"):
- self.report({"ERROR"}, "Object has to be IfcDoor/IfcDoorType type to add a door.")
+ if element.is_a() not in ("IfcDoor", "IfcDoorType", "IfcDoorStyle"):
+ self.report({"ERROR"}, "Object has to be IfcDoor/IfcDoorType/IfcDoorStyle type to add a door.")
return {"CANCELLED"}
door_data = props.get_general_kwargs(convert_to_project_units=True)
diff --git a/src/blenderbim/blenderbim/bim/module/model/opening.py b/src/blenderbim/blenderbim/bim/module/model/opening.py
index 6378aaa297..1d3ca9dbce 100644
--- a/src/blenderbim/blenderbim/bim/module/model/opening.py
+++ b/src/blenderbim/blenderbim/bim/module/model/opening.py
@@ -232,9 +232,16 @@ class FilledOpeningGenerator:
curve_3d = ifcopenshell.util.representation.resolve_representation(profile).Items[0]
def get_curve_2d_from_3d(curve_3d):
- ifc_segments = [shape_builder.deep_copy(s) for s in curve_3d.Segments]
- ifc_points = ifc_file.createIfcCartesianPointList2D([Vector(p).xz for p in curve_3d.Points.CoordList])
- ifc_curve = ifc_file.createIfcIndexedPolyCurve(Points=ifc_points, Segments=ifc_segments)
+ if tool.Ifc.get_schema() == "IFC2X3":
+ coords = [Vector(p).xz for p in shape_builder.get_polyline_coords(curve_3d)]
+ ifc_curve = shape_builder.polyline(coords, closed=True)
+ else:
+ # using different algorithm to keep arc segments possible in the future
+ ifc_segments = [shape_builder.deep_copy(s) for s in curve_3d.Segments]
+ ifc_points = ifc_file.createIfcCartesianPointList2D(
+ [Vector(p).xz for p in curve_3d.Points.CoordList]
+ )
+ ifc_curve = ifc_file.createIfcIndexedPolyCurve(Points=ifc_points, Segments=ifc_segments)
return ifc_curve
extrusion = shape_builder.extrude(
diff --git a/src/blenderbim/blenderbim/bim/module/model/pie.py b/src/blenderbim/blenderbim/bim/module/model/pie.py
index 5c15b2c3d9..f29e286af9 100644
--- a/src/blenderbim/blenderbim/bim/module/model/pie.py
+++ b/src/blenderbim/blenderbim/bim/module/model/pie.py
@@ -68,7 +68,7 @@ class PieUpdateContainer(bpy.types.Operator):
if not obj.BIMObjectProperties.ifc_definition_id:
continue
for collection in obj.users_collection:
- spatial_obj = bpy.data.objects.get(collection.name)
+ spatial_obj = collection.BIMCollectionProperties.obj
if spatial_obj and spatial_obj.BIMObjectProperties.ifc_definition_id:
blenderbim.core.spatial.assign_container(
tool.Ifc, tool.Collector, tool.Spatial, structure_obj=spatial_obj, element_obj=obj
diff --git a/src/blenderbim/blenderbim/bim/module/model/product.py b/src/blenderbim/blenderbim/bim/module/model/product.py
index fc1e5e2026..f938ea1e49 100644
--- a/src/blenderbim/blenderbim/bim/module/model/product.py
+++ b/src/blenderbim/blenderbim/bim/module/model/product.py
@@ -128,20 +128,9 @@ class AddConstrTypeInstance(bpy.types.Operator):
obj.location = context.scene.cursor.location
- collection = None
- if (
- building_obj
- and building_element
- and building_element.is_a() in ["IfcWall", "IfcWallStandardCase", "IfcCovering"]
- and instance_class in ["IfcWindow", "IfcDoor"]
- ):
- # Fills should be a sibling to the building element
- collection = building_obj.users_collection[0]
- if not collection:
- collection = context.view_layer.active_layer_collection.collection
-
+ collection = context.view_layer.active_layer_collection.collection
collection.objects.link(obj)
- collection_obj = bpy.data.objects.get(collection.name)
+ collection_obj = collection.BIMCollectionProperties.obj
bpy.ops.bim.assign_class(obj=obj.name, ifc_class=instance_class)
element = tool.Ifc.get_entity(obj)
@@ -150,6 +139,26 @@ class AddConstrTypeInstance(bpy.types.Operator):
# Update required as core.type.assign_type may change obj.data
context.view_layer.update()
+ if (
+ building_obj
+ and building_element
+ and building_element.is_a() in ["IfcWall", "IfcWallStandardCase", "IfcCovering"]
+ and instance_class in ["IfcWindow", "IfcDoor"]
+ ):
+ # Fills should be a sibling to the building element
+ parent = ifcopenshell.util.element.get_aggregate(building_element)
+ if parent:
+ parent_obj = tool.Ifc.get_object(parent)
+ blenderbim.core.aggregate.assign_object(
+ tool.Ifc, tool.Aggregate, tool.Collector, relating_obj=parent_obj, related_obj=obj
+ )
+ else:
+ parent = ifcopenshell.util.element.get_container(building_element)
+ parent_obj = tool.Ifc.get_object(parent)
+ blenderbim.core.spatial.assign_container(
+ tool.Ifc, tool.Collector, tool.Spatial, structure_obj=parent_obj, element_obj=obj
+ )
+
# set occurences properties for the types defined with modifiers
if instance_class in ["IfcWindow", "IfcDoor"]:
pset_name = f"BBIM_{instance_class[3:]}"
@@ -462,11 +471,6 @@ class MirrorElements(bpy.types.Operator, tool.Ifc.Operator):
obj.matrix_world = newmat
- def copy_obj(self, obj):
- new = obj.copy()
- new.data = wall2.data.copy()
- wall1.users_collection[0].objects.link(wall2)
- blenderbim.core.root.copy_class(tool.Ifc, tool.Collector, tool.Geometry, tool.Root, obj=wall2)
def generate_box(usecase_path, ifc_file, settings):
diff --git a/src/blenderbim/blenderbim/bim/module/model/profile.py b/src/blenderbim/blenderbim/bim/module/model/profile.py
index 2cc507d9e2..113b192da4 100644
--- a/src/blenderbim/blenderbim/bim/module/model/profile.py
+++ b/src/blenderbim/blenderbim/bim/module/model/profile.py
@@ -28,6 +28,7 @@ import blenderbim.bim.handler
import blenderbim.tool as tool
import blenderbim.core.type
import blenderbim.core.geometry
+import blenderbim.core.material
from math import pi, degrees, inf
from mathutils import Vector, Matrix, Quaternion
from blenderbim.bim.module.geometry.helper import Helper
@@ -53,7 +54,7 @@ class DumbProfileGenerator:
self.axis_context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Axis", "GRAPH_VIEW")
props = bpy.context.scene.BIMModelProperties
self.collection = bpy.context.view_layer.active_layer_collection.collection
- self.collection_obj = bpy.data.objects.get(self.collection.name)
+ self.collection_obj = self.collection.BIMCollectionProperties.obj
self.depth = props.extrusion_depth
self.rotation = 0
self.location = Vector((0, 0, 0))
@@ -857,6 +858,25 @@ class Rotate90(bpy.types.Operator, tool.Ifc.Operator):
return {"FINISHED"}
+class PatchNonParametricMepSegment(bpy.types.Operator, tool.Ifc.Operator):
+ bl_idname = "bim.patch_non_parametric_mep_segment"
+ bl_label = "Set MEP segment Material Profile"
+ bl_options = {"REGISTER", "UNDO"}
+
+ @classmethod
+ def poll(cls, context):
+ return context.active_object
+
+ def _execute(self, context):
+ styles = tool.Geometry.get_styles(context.active_object)
+ blenderbim.core.material.patch_non_parametric_mep_segment(
+ tool.Ifc, tool.Material, tool.Profile, obj=context.active_object
+ )
+ bpy.ops.bim.enable_editing_extrusion_axis()
+ bpy.ops.bim.edit_extrusion_axis()
+ styles = tool.Geometry.get_styles(context.active_object)
+
+
class EnableEditingExtrusionAxis(bpy.types.Operator, tool.Ifc.Operator):
bl_idname = "bim.enable_editing_extrusion_axis"
bl_label = "Enable Editing Extrusion Axis"
@@ -927,7 +947,7 @@ class DisableEditingExtrusionAxis(bpy.types.Operator, tool.Ifc.Operator):
return context.selected_objects
def _execute(self, context):
- return disable_editing_extrusion_axis()
+ return disable_editing_extrusion_axis(context)
class EditExtrusionAxis(bpy.types.Operator, tool.Ifc.Operator):
@@ -948,6 +968,10 @@ class EditExtrusionAxis(bpy.types.Operator, tool.Ifc.Operator):
depth = (end - start).length
z_axis = (end - start).normalized()
y_axis = Vector((0, 0, 1))
+ # making sure z_axis != y_axis
+ if z_axis == y_axis:
+ y_axis = Vector((0,1,0))
+
x_axis = y_axis.cross(z_axis).normalized()
y_axis = z_axis.cross(x_axis).normalized()
diff --git a/src/blenderbim/blenderbim/bim/module/model/slab.py b/src/blenderbim/blenderbim/bim/module/model/slab.py
index 7c9bbceebc..9a756ee83e 100644
--- a/src/blenderbim/blenderbim/bim/module/model/slab.py
+++ b/src/blenderbim/blenderbim/bim/module/model/slab.py
@@ -133,7 +133,7 @@ class DumbSlabGenerator:
props = bpy.context.scene.BIMModelProperties
self.collection = bpy.context.view_layer.active_layer_collection.collection
- self.collection_obj = bpy.data.objects.get(self.collection.name)
+ self.collection_obj = self.collection.BIMCollectionProperties.obj
self.depth = sum(thicknesses) * unit_scale
self.width = 3
self.length = 3
diff --git a/src/blenderbim/blenderbim/bim/module/model/space.py b/src/blenderbim/blenderbim/bim/module/model/space.py
index db60ea9e6e..2010639e0f 100644
--- a/src/blenderbim/blenderbim/bim/module/model/space.py
+++ b/src/blenderbim/blenderbim/bim/module/model/space.py
@@ -26,7 +26,7 @@ import blenderbim.tool as tool
import blenderbim.core.type
from math import pi
from mathutils import Vector, Matrix
-from shapely import Polygon
+from shapely import Polygon, MultiPolygon
class GenerateSpace(bpy.types.Operator, tool.Ifc.Operator):
@@ -38,7 +38,7 @@ class GenerateSpace(bpy.types.Operator, tool.Ifc.Operator):
@classmethod
def poll(cls, context):
collection = context.view_layer.active_layer_collection.collection
- collection_obj = bpy.data.objects.get(collection.name)
+ collection_obj = collection.BIMCollectionProperties.obj
return tool.Ifc.get_entity(collection_obj)
def _execute(self, context):
@@ -60,7 +60,7 @@ class GenerateSpace(bpy.types.Operator, tool.Ifc.Operator):
relating_type = None
collection = context.view_layer.active_layer_collection.collection
- collection_obj = bpy.data.objects.get(collection.name)
+ collection_obj = collection.BIMCollectionProperties.obj
if not collection_obj:
bpy.context.window_manager.popup_menu(msg, title="Error", icon="ERROR")
return
@@ -185,7 +185,7 @@ class GenerateSpacesFromWalls(bpy.types.Operator, tool.Ifc.Operator):
bl_idname = "bim.generate_spaces_from_walls"
bl_label = "Generate Spaces From Walls"
bl_options = {"REGISTER", "UNDO"}
- bl_description = "Generate spaces from selected walls. The active object must be a wall."
+ bl_description = "Generate spaces from selected walls. The active object must be a wall"
@classmethod
def poll(cls, context):
@@ -203,29 +203,19 @@ class GenerateSpacesFromWalls(bpy.types.Operator, tool.Ifc.Operator):
active_obj = bpy.context.active_object
if not active_obj:
- self.report({'ERROR'}, "No active object. Please select a wall")
+ self.report({"ERROR"}, "No active object. Please select a wall")
return
- element = None
element = tool.Ifc.get_entity(active_obj)
- if element:
- if not element.is_a("IfcWall"):
- self.report({'ERROR'}, "The active object is not a wall. Please select a wall.")
- return
+ if element and not element.is_a("IfcWall"):
+ return self.report({"ERROR"}, "The active object is not a wall. Please select a wall.")
- collection = active_obj.users_collection[0]
- collection_obj = bpy.data.objects.get(collection.name)
- if not collection_obj:
- self.report({'ERROR'}, "No collection found. Please insert one.")
- return
-
- spatial_element = tool.Ifc.get_entity(collection_obj)
- if not spatial_element:
- self.report({'ERROR'}, "The collection hasn't an ifc space entity. Please provide one.")
- return
+ container = ifcopenshell.util.element.get_container(element)
+ if not container:
+ self.report({"ERROR"}, "The wall is not contained.")
if not bpy.context.selected_objects:
- self.report({'ERROR'}, "No selected objects found. Please select walls.")
+ self.report({"ERROR"}, "No selected objects found. Please select walls.")
return
x, y, z = active_obj.matrix_world.translation.xyz
@@ -237,19 +227,20 @@ class GenerateSpacesFromWalls(bpy.types.Operator, tool.Ifc.Operator):
polys = self.get_polygons(boundary_elements)
- converted_tolerance = self.get_converted_tolerance(tolerance = 0.03)
+ converted_tolerance = self.get_converted_tolerance(tolerance=0.03)
- union = shapely.ops.unary_union(polys).buffer(converted_tolerance, cap_style = 2, join_style = 2)
+ union = shapely.ops.unary_union(polys).buffer(converted_tolerance, cap_style=2, join_style=2)
- i=0
- for linear_ring in union.interiors:
+ union = self.get_purged_inner_holes_poly(union_geom = union, min_area = self.get_converted_tolerance(tolerance = 3))
+
+ for i, linear_ring in enumerate(union.interiors):
poly = Polygon(linear_ring)
- poly = poly.buffer(converted_tolerance, single_sided=True, cap_style = 2, join_style = 2)
+ poly = poly.buffer(converted_tolerance, single_sided=True, cap_style=2, join_style=2)
bm = self.get_bmesh_from_polygon(poly, mat, h)
name = "Space" + str(i)
- mesh = bpy.data.meshes.new(name = name)
+ mesh = bpy.data.meshes.new(name=name)
bm.to_mesh(mesh)
bm.free()
@@ -258,19 +249,21 @@ class GenerateSpacesFromWalls(bpy.types.Operator, tool.Ifc.Operator):
self.set_obj_origin_to_bboxcenter(obj)
- collection.objects.link(obj)
+ if z != 0:
+ obj.location = obj.location + Vector((0,0,z))
+ context.view_layer.active_layer_collection.collection.objects.link(obj)
bpy.ops.bim.assign_class(obj=obj.name, ifc_class="IfcSpace")
- i+=1
-
- return {"FINISHED"}
-
+ container_obj = tool.Ifc.get_object(container)
+ blenderbim.core.spatial.assign_container(
+ tool.Ifc, tool.Collector, tool.Spatial, structure_obj=container_obj, element_obj=obj
+ )
def get_boundary_elements(self, selected_objects):
boundary_elements = []
for obj in selected_objects:
subelement = tool.Ifc.get_entity(obj)
- if subelement.is_a("IfcWall"):
+ if subelement.is_a("IfcWall") or subelement.is_a("IfcColumn"):
boundary_elements.append(subelement)
return boundary_elements
@@ -302,17 +295,40 @@ class GenerateSpacesFromWalls(bpy.types.Operator, tool.Ifc.Operator):
def get_converted_tolerance(self, tolerance):
model = tool.Ifc.get()
project_unit = ifcopenshell.util.unit.get_project_unit(model, "LENGTHUNIT")
- prefix=getattr(project_unit, "Prefix", None)
+ prefix = getattr(project_unit, "Prefix", None)
converted_tolerance = ifcopenshell.util.unit.convert(
- value = tolerance,
- from_prefix = None,
- from_unit = "METRE",
- to_prefix = prefix,
- to_unit = project_unit.Name,
- )
+ value=tolerance,
+ from_prefix=None,
+ from_unit="METRE",
+ to_prefix=prefix,
+ to_unit=project_unit.Name,
+ )
return tolerance
+ def get_purged_inner_holes_poly(self, union_geom, min_area):
+ interiors_list = []
+
+ if union_geom.geom_type == "MultiPolygon":
+ for poly in union_geom.geoms:
+ interiors_list = self.get_poly_valid_interior_list(poly = poly, min_area = min_area, interiors_list = interiors_list)
+
+ new_poly = Polygon(poly.exterior.coords, holes = interiors_list)
+
+ if union_geom.geom_type == "Polygon":
+ interiors_list = self.get_poly_valid_interior_list(poly = union_geom, min_area = min_area, interiors_list = interiors_list)
+ new_poly = Polygon(union_geom.exterior.coords, holes = interiors_list)
+
+ return new_poly
+
+ def get_poly_valid_interior_list(self, poly, min_area, interiors_list):
+ for interior in poly.interiors:
+ p = Polygon(interior)
+ if p.area >= min_area:
+ interiors_list.append(interior)
+ return interiors_list
+
+
def get_bmesh_from_polygon(self, poly, mat, h):
bm = bmesh.new()
bm.verts.index_update()
@@ -335,7 +351,7 @@ class GenerateSpacesFromWalls(bpy.types.Operator, tool.Ifc.Operator):
extruded_verts = [g for g in extrusion["geom"] if isinstance(g, bmesh.types.BMVert)]
bmesh.ops.translate(bm, vec=[0.0, 0.0, h], verts=extruded_verts)
- bmesh.ops.recalc_face_normals(bm, faces = bm.faces)
+ bmesh.ops.recalc_face_normals(bm, faces=bm.faces)
return bm
@@ -353,3 +369,35 @@ class GenerateSpacesFromWalls(bpy.types.Operator, tool.Ifc.Operator):
aux_vector = aux_vector - diff
vert.co = inverted @ aux_vector
obj.location = newLoc
+
+class ToggleSpaceVisibility(bpy.types.Operator, tool.Ifc.Operator):
+ bl_idname = "bim.toggle_space_visibility"
+ bl_label = "Toggle Space Visibility"
+ bl_options = {"REGISTER"}
+ bl_description = "Change the space visibility"
+
+ def execute(cls, context):
+ model = tool.Ifc.get()
+
+ spaces = model.by_type('IfcSpace')
+
+ if not spaces:
+ print(spaces)
+ return {"FINISHED"}
+
+ first_obj = tool.Ifc.get_object(spaces[0])
+
+ if bpy.data.objects[first_obj.name].display_type == 'TEXTURED':
+ for space in spaces:
+ obj = tool.Ifc.get_object(space)
+ bpy.data.objects[obj.name].show_wire = True
+ bpy.data.objects[obj.name].display_type = 'WIRE'
+ return {"FINISHED"}
+
+ elif bpy.data.objects[first_obj.name].display_type == 'WIRE':
+ for space in spaces:
+ obj = tool.Ifc.get_object(space)
+ bpy.data.objects[obj.name].show_wire = False
+ bpy.data.objects[obj.name].display_type = 'TEXTURED'
+ return {"FINISHED"}
+
diff --git a/src/blenderbim/blenderbim/bim/module/model/stair.py b/src/blenderbim/blenderbim/bim/module/model/stair.py
index 52d90348e2..04b5836e14 100644
--- a/src/blenderbim/blenderbim/bim/module/model/stair.py
+++ b/src/blenderbim/blenderbim/bim/module/model/stair.py
@@ -250,7 +250,8 @@ def update_ifc_stair_props(obj):
props = obj.BIMStairProperties
ifc_file = tool.Ifc.get()
- element.PredefinedType = "STRAIGHT"
+ if tool.Ifc.get_schema() != "IFC2X3":
+ element.PredefinedType = "STRAIGHT"
number_of_risers = props.number_of_treads + 1
# update IfcStairFlight properties (seems already deprecated but keep it for now)
# http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcStairFlight.htm
@@ -260,7 +261,11 @@ def update_ifc_stair_props(obj):
tread_length = props.tread_depth / si_conversion
if element.is_a("IfcStairFlight"):
- element.NumberOfRisers = number_of_risers
+ if tool.Ifc.get_schema() == "IFC2X3":
+ element.NumberOfRiser = number_of_risers
+ else:
+ element.NumberOfRisers = number_of_risers
+
element.NumberOfTreads = props.number_of_treads
element.RiserHeight = riser_height
element.TreadLength = tread_length
@@ -330,7 +335,8 @@ class BIM_OT_add_clever_stair(bpy.types.Operator, tool.Ifc.Operator):
should_add_representation=True,
context=body_context,
)
- element.PredefinedType = "STRAIGHT"
+ if tool.Ifc.get_schema() != "IFC2X3":
+ element.PredefinedType = "STRAIGHT"
bpy.ops.object.select_all(action="DESELECT")
bpy.context.view_layer.objects.active = None
diff --git a/src/blenderbim/blenderbim/bim/module/model/ui.py b/src/blenderbim/blenderbim/bim/module/model/ui.py
index 9fb60cda61..63f6452982 100644
--- a/src/blenderbim/blenderbim/bim/module/model/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/model/ui.py
@@ -135,32 +135,24 @@ class BIM_PT_authoring(Panel):
row.operator("bim.generate_space")
row = self.layout.row(align=True)
row.operator("bim.generate_spaces_from_walls")
+ row = self.layout.row(align=True)
+ row.operator("bim.toggle_space_visibility")
-class BIM_PT_GridsSpatialManager(Panel):
- bl_label = "Grids and Containers"
- bl_idname = "BIM_PT_GridsSpatialManager"
+class BIM_PT_Grids(Panel):
+ bl_label = "Grids"
+ bl_idname = "BIM_PT_Grids"
bl_space_type = "VIEW_3D"
bl_region_type = "UI"
bl_options = {"DEFAULT_CLOSED"}
bl_category = "BlenderBIM"
- def draw(self, context):
- pass
-
-class BIM_PT_Grids(Panel):
- bl_label = "Grid Creator"
- bl_idname = "BIM_PT_Grids"
- bl_space_type = "VIEW_3D"
- bl_region_type = "UI"
- bl_options = {"DEFAULT_CLOSED"}
- bl_parent_id = "BIM_PT_GridsSpatialManager"
-
def draw(self, context):
self.animation_props = context.scene.BIMAnimationProperties
row = self.layout.row()
row.operator("mesh.add_grid", icon="ADD", text="Add Grids")
+
class BIM_PT_array(bpy.types.Panel):
bl_label = "IFC Array"
bl_idname = "BIM_PT_array"
diff --git a/src/blenderbim/blenderbim/bim/module/model/wall.py b/src/blenderbim/blenderbim/bim/module/model/wall.py
index 0a43c1d021..334286ca87 100644
--- a/src/blenderbim/blenderbim/bim/module/model/wall.py
+++ b/src/blenderbim/blenderbim/bim/module/model/wall.py
@@ -434,7 +434,7 @@ class DumbWallGenerator:
props = bpy.context.scene.BIMModelProperties
self.collection = bpy.context.view_layer.active_layer_collection.collection
- self.collection_obj = bpy.data.objects.get(self.collection.name)
+ self.collection_obj = self.collection.BIMCollectionProperties.obj
self.width = self.layers["thickness"]
self.height = props.extrusion_depth
self.length = props.length
@@ -934,7 +934,8 @@ class DumbWallJoiner:
def duplicate_wall(self, wall1):
wall2 = wall1.copy()
wall2.data = wall2.data.copy()
- wall1.users_collection[0].objects.link(wall2)
+ for collection in wall1.users_collection:
+ collection.objects.link(wall2)
blenderbim.core.root.copy_class(tool.Ifc, tool.Collector, tool.Geometry, tool.Root, obj=wall2)
return wall2
diff --git a/src/blenderbim/blenderbim/bim/module/model/window.py b/src/blenderbim/blenderbim/bim/module/model/window.py
index aa0c6689d0..3f4f7ee926 100644
--- a/src/blenderbim/blenderbim/bim/module/model/window.py
+++ b/src/blenderbim/blenderbim/bim/module/model/window.py
@@ -167,7 +167,8 @@ def update_window_modifier_representation(context):
)
# type attributes
- element.PartitioningType = props.window_type
+ if tool.Ifc.get_schema() != "IFC2X3":
+ element.PartitioningType = props.window_type
# occurences attributes
occurences = tool.Ifc.get_all_element_occurences(element)
@@ -262,14 +263,19 @@ def create_bm_window(
frame_thickness,
glass_thickness,
position: Vector,
+ x_offsets: list = None,
):
- """`lining_thickness` expected to be defined as a list,
+ """`lining_thickness` and `x_offsets` are expected to be defined as a list,
similarly to `create_bm_window_frame` `thickness` argument"""
+
+ if x_offsets is None:
+ x_offsets = [lining_to_panel_offset_x] * 4
+
# window lining
window_lining_verts = create_bm_window_frame(bm, lining_size, lining_thickness)
# window frame
- frame_position = V(lining_to_panel_offset_x, lining_to_panel_offset_y_full, lining_to_panel_offset_x)
+ frame_position = V(x_offsets[0], lining_to_panel_offset_y_full, x_offsets[3])
frame_verts = create_bm_window_frame(bm, frame_size, frame_thickness, frame_position)
# window glass
@@ -319,21 +325,35 @@ def update_window_modifier_bmesh(context):
unique_cols = len(set(panel_row))
for column_i, panel_i in enumerate(panel_row):
+ # detect mullion
+ has_mullion = unique_cols > 1
+ first_column = column_i == 0
+ last_column = column_i == unique_cols - 1
+ left_to_mullion = has_mullion and not last_column
+ right_to_mullion = has_mullion and not first_column
+
+ # detect transom
+ has_transom = unique_rows_in_col[column_i] > 1
+ first_row = row_i == 0
+ last_row = row_i == unique_rows_in_col[column_i] - 1
+ top_to_transom = has_transom and not first_row
+ bottom_to_transom = has_transom and not last_row
+
# calculate current panel dimensions
- if unique_cols > 1:
- if column_i == 0:
+ if has_mullion:
+ if first_column:
panel_width = first_mullion_offset
- elif column_i == unique_cols - 1:
+ elif last_column:
panel_width = overall_width - accumulated_width
else:
panel_width = second_mullion_offset - accumulated_width
else:
panel_width = overall_width
- if unique_rows_in_col[column_i] > 1:
- if row_i == 0:
+ if has_transom:
+ if first_row:
panel_height = first_transom_offset
- elif row_i == unique_rows_in_col[column_i] - 1:
+ elif last_row:
panel_height = overall_height - accumulated_height[column_i]
else:
panel_height = second_transom_offset - accumulated_height[column_i]
@@ -347,7 +367,7 @@ def update_window_modifier_bmesh(context):
frame_depth = props.frame_depth[panel_i]
frame_thickness = props.frame_thickness[panel_i]
-
+ lining_to_panel_offset_y_full = (lining_depth - frame_depth) + lining_to_panel_offset_y
# add window
window_lining_size = V(
panel_width,
@@ -355,25 +375,33 @@ def update_window_modifier_bmesh(context):
panel_height,
)
- # calculate lining thickness
+ # calculate lining thickness and frame size / offset
# taking into account mullions and transoms
- window_lining_thickness = [lining_thickness] * 4
- # mullion thickness
- if unique_cols > 1:
- if column_i != 0:
- window_lining_thickness[0] = mullion_thickness # left column
- if column_i != unique_cols - 1:
- window_lining_thickness[2] = mullion_thickness # right column
- # transom thickness
- if unique_rows_in_col[column_i] > 1:
- if row_i != 0:
- window_lining_thickness[3] = transom_thickness # bottom row
- if row_i != unique_rows_in_col[column_i] - 1:
- window_lining_thickness[1] = transom_thickness # top row
+ # fmt: off
+ window_lining_thickness = [
+ mullion_thickness if right_to_mullion else lining_thickness,
+ transom_thickness if bottom_to_transom else lining_thickness,
+ mullion_thickness if left_to_mullion else lining_thickness,
+ transom_thickness if top_to_transom else lining_thickness,
+ ]
+
+ # x offsets can differ if there are mullions or transoms because we're trying to maintain symmetry
+ base_frame_clear = lining_to_panel_offset_x + frame_thickness - lining_thickness
+ current_offset_x = base_frame_clear - frame_thickness + mullion_thickness
+ current_offset_z = base_frame_clear - frame_thickness + transom_thickness
+ # fmt: off
+ x_offsets = [
+ current_offset_x if right_to_mullion else lining_to_panel_offset_x, # LEFT
+ current_offset_z if bottom_to_transom else lining_to_panel_offset_x, # TOP
+ current_offset_x if left_to_mullion else lining_to_panel_offset_x, # RIGHT
+ current_offset_z if top_to_transom else lining_to_panel_offset_x, # BOTTOM
+ ]
+ # fmt: on
frame_size = window_lining_size.copy()
frame_size.y = frame_depth
- frame_size = frame_size - V(lining_to_panel_offset_x * 2, 0, lining_to_panel_offset_x * 2)
+ frame_size.x -= x_offsets[0] + x_offsets[2]
+ frame_size.z -= x_offsets[1] + x_offsets[3]
window_position = V(accumulated_width, 0, accumulated_height[column_i])
lining_verts, panel_verts, glass_verts = create_bm_window(
@@ -381,11 +409,12 @@ def update_window_modifier_bmesh(context):
window_lining_size,
window_lining_thickness,
lining_to_panel_offset_x,
- (lining_depth - frame_depth) + lining_to_panel_offset_y,
+ lining_to_panel_offset_y_full,
frame_size,
frame_thickness,
glass_thickness,
window_position,
+ x_offsets,
)
built_panels.append(panel_i)
@@ -427,7 +456,8 @@ class BIM_OT_add_window(bpy.types.Operator, tool.Ifc.Operator):
element = blenderbim.core.root.assign_class(
tool.Ifc, tool.Collector, tool.Root, obj=obj, ifc_class="IfcWindow", should_add_representation=False
)
- element.PredefinedType = "WINDOW"
+ if tool.Ifc.get_schema() != "IFC2X3":
+ element.PredefinedType = "WINDOW"
bpy.ops.object.select_all(action="DESELECT")
bpy.context.view_layer.objects.active = None
@@ -448,8 +478,8 @@ class AddWindow(bpy.types.Operator, tool.Ifc.Operator):
element = tool.Ifc.get_entity(obj)
props = obj.BIMWindowProperties
- if element.is_a() not in ("IfcWindow", "IfcWindowType"):
- self.report({"ERROR"}, "Object has to be IfcWindow/IfcWindowType type to add a window.")
+ if element.is_a() not in ("IfcWindow", "IfcWindowType", "IfcWindowStyle"):
+ self.report({"ERROR"}, "Object has to be IfcWindow/IfcWindowType/IfcWindowStyle type to add a window.")
return {"CANCELLED"}
window_data = props.get_general_kwargs(convert_to_project_units=True)
@@ -481,6 +511,8 @@ class CancelEditingWindow(bpy.types.Operator, tool.Ifc.Operator):
obj = context.active_object
element = tool.Ifc.get_entity(obj)
data = json.loads(ifcopenshell.util.element.get_pset(element, "BBIM_Window", "Data"))
+ data.update(data.pop("lining_properties"))
+ data.update(data.pop("panel_properties"))
props = obj.BIMWindowProperties
props.set_props_kwargs_from_ifc_data(data)
diff --git a/src/blenderbim/blenderbim/bim/module/model/workspace.py b/src/blenderbim/blenderbim/bim/module/model/workspace.py
index ad9629637f..d6d23788a2 100644
--- a/src/blenderbim/blenderbim/bim/module/model/workspace.py
+++ b/src/blenderbim/blenderbim/bim/module/model/workspace.py
@@ -57,7 +57,6 @@ class BimTool(WorkSpaceTool):
("bim.hotkey", {"type": "V", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_V")]}),
("bim.hotkey", {"type": "X", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_X")]}),
("bim.hotkey", {"type": "Y", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_Y")]}),
- ("bim.hotkey", {"type": "B", "value": "PRESS", "alt": True}, {"properties": [("hotkey", "A_B")]}),
("bim.hotkey", {"type": "D", "value": "PRESS", "alt": True}, {"properties": [("hotkey", "A_D")]}),
("bim.hotkey", {"type": "E", "value": "PRESS", "alt": True}, {"properties": [("hotkey", "A_E")]}),
("bim.hotkey", {"type": "O", "value": "PRESS", "alt": True}, {"properties": [("hotkey", "A_O")]}),
@@ -271,12 +270,6 @@ class BimToolUI:
else:
row.operator("bim.show_openings", icon="HIDE_OFF", text="")
- row = cls.layout.row(align=True)
- row.label(text="", icon="EVENT_SHIFT")
- row.label(text="", icon="EVENT_B")
- row.prop(cls.props, "boundary_class", text="")
- row.operator("bim.add_boundary", text="Add Boundary")
-
cls.layout.row(align=True).label(text="Align")
add_layout_hotkey_operator(cls.layout, "Align Exterior", "S_X", "")
add_layout_hotkey_operator(cls.layout, "Align Centerline", "S_C", "")
@@ -286,7 +279,6 @@ class BimToolUI:
cls.layout.row(align=True).label(text="Mode")
add_layout_hotkey_operator(cls.layout, "Void", "A_O", "Toggle openings")
add_layout_hotkey_operator(cls.layout, "Decomposition", "A_D", "Select decomposition")
- add_layout_hotkey_operator(cls.layout, "Boundaries", "A_B", "Toggle boundaries")
@classmethod
def draw_header_interface(cls):
@@ -602,14 +594,6 @@ class Hotkey(bpy.types.Operator, tool.Ifc.Operator):
self.props.y = self.y
self.props.z = self.z
- def hotkey_A_B(self):
- if not bpy.context.selected_objects:
- return
- if AuthoringData.data["has_visible_boundaries"]:
- bpy.ops.bim.hide_boundaries()
- else:
- bpy.ops.bim.show_boundaries()
-
def hotkey_A_D(self):
if not bpy.context.selected_objects:
return
diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py
index c138a4ae8a..53b17c739b 100644
--- a/src/blenderbim/blenderbim/bim/module/project/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/project/operator.py
@@ -74,19 +74,21 @@ class SelectLibraryFile(bpy.types.Operator, IFCFileSelector):
filepath: bpy.props.StringProperty(subtype="FILE_PATH")
filter_glob: bpy.props.StringProperty(default="*.ifc;*.ifczip;*.ifcxml", options={"HIDDEN"})
append_all: bpy.props.BoolProperty(default=False)
+ use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=False)
def execute(self, context):
IfcStore.begin_transaction(self)
old_filepath = IfcStore.library_path
result = self._execute(context)
- self.transaction_data = {"old_filepath": old_filepath, "filepath": self.filepath}
+ self.transaction_data = {"old_filepath": old_filepath, "filepath": self.get_filepath()}
IfcStore.add_transaction_operation(self)
IfcStore.end_transaction(self)
return result
def _execute(self, context):
- IfcStore.library_path = self.filepath
- IfcStore.library_file = ifcopenshell.open(self.filepath)
+ filepath = self.get_filepath()
+ IfcStore.library_path = filepath
+ IfcStore.library_file = ifcopenshell.open(filepath)
bpy.ops.bim.refresh_library()
if context.area:
context.area.tag_redraw()
@@ -371,7 +373,8 @@ class AppendLibraryElement(bpy.types.Operator):
if not type_collection:
type_collection = bpy.data.collections.new("Types")
for collection in bpy.context.view_layer.layer_collection.children:
- if "IfcProject/" in collection.name:
+ collection_obj = collection.collection.BIMCollectionProperties.obj
+ if collection_obj and tool.Ifc.get_entity(collection_obj).is_a("IfcProject"):
collection.collection.children.link(type_collection)
collection.children["Types"].hide_viewport = True
break
@@ -522,13 +525,14 @@ class LoadProject(bpy.types.Operator, IFCFileSelector):
bl_options = {"REGISTER", "UNDO"}
bl_description = "Load an existing IFC project"
filepath: bpy.props.StringProperty(subtype="FILE_PATH")
- filter_glob: bpy.props.StringProperty(default="*.ifc;*.ifczip;*.ifcxml", options={"HIDDEN"})
+ filter_glob: bpy.props.StringProperty(default="*.ifc;*.ifczip;*.ifcxml;*.ifcsqlite", options={"HIDDEN"})
is_advanced: bpy.props.BoolProperty(name="Enable Advanced Mode", default=False)
+ use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=False)
def execute(self, context):
if not self.is_existing_ifc_file():
return {"FINISHED"}
- context.scene.BIMProperties.ifc_file = self.filepath
+ context.scene.BIMProperties.ifc_file = self.get_filepath()
context.scene.BIMProjectProperties.is_loading = True
context.scene.BIMProjectProperties.total_elements = len(tool.Ifc.get().by_type("IfcElement"))
if not self.is_advanced:
@@ -817,10 +821,22 @@ class ExportIFC(bpy.types.Operator):
filepath: bpy.props.StringProperty(subtype="FILE_PATH")
json_version: bpy.props.EnumProperty(items=[("4", "4", ""), ("5a", "5a", "")], name="IFC JSON Version")
json_compact: bpy.props.BoolProperty(name="Export Compact IFCJSON", default=False)
- should_save_as: bpy.props.BoolProperty(name="Should Save As", default=False)
+ should_save_as: bpy.props.BoolProperty(name="Should Save As", default=False, options={"HIDDEN"})
use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=False)
+ save_as_invoked: bpy.props.BoolProperty(name="Save As Dialog Was Invoked", default=False, options={"HIDDEN"})
+
+ def draw(self, context):
+ layout = self.layout
+ layout.prop(self, "json_version")
+ layout.prop(self, "json_compact")
+ if bpy.data.is_saved:
+ layout.prop(self, "use_relative_path")
+ else:
+ layout.label(text="Save the .blend file first ")
+ layout.label(text="to use relative paths for .ifc.")
def invoke(self, context, event):
+ self.save_as_invoked = False
if not IfcStore.get_file():
self.report({"ERROR"}, "No IFC project is available for export - create or import a project first.")
return {"FINISHED"}
@@ -834,18 +850,23 @@ class ExportIFC(bpy.types.Operator):
self.filepath = Path(bpy.data.filepath).with_suffix(".ifc").__str__()
else:
self.filepath = "untitled.ifc"
+
+ self.save_as_invoked = True
WindowManager = context.window_manager
WindowManager.fileselect_add(self)
return {"RUNNING_MODAL"}
def execute(self, context):
- if context.scene.BIMProjectProperties.should_disable_undo_on_save:
+ project_props = context.scene.BIMProjectProperties
+ if self.save_as_invoked:
+ project_props.use_relative_project_path = self.use_relative_path
+ if project_props.should_disable_undo_on_save:
old_history_size = tool.Ifc.get().history_size
old_undo_steps = context.preferences.edit.undo_steps
tool.Ifc.get().history_size = 0
context.preferences.edit.undo_steps = 0
IfcStore.execute_ifc_operator(self, context)
- if context.scene.BIMProjectProperties.should_disable_undo_on_save:
+ if project_props.should_disable_undo_on_save:
tool.Ifc.get().history_size = old_history_size
context.preferences.edit.undo_steps = old_undo_steps
return {"FINISHED"}
@@ -882,7 +903,7 @@ class ExportIFC(bpy.types.Operator):
if not scene.DocProperties.ifc_files:
new = scene.DocProperties.ifc_files.add()
new.name = output_file
- if self.use_relative_path and bpy.data.is_saved:
+ if context.scene.BIMProjectProperties.use_relative_project_path and bpy.data.is_saved:
output_file = os.path.relpath(output_file, bpy.path.abspath("//"))
if scene.BIMProperties.ifc_file != output_file and extension not in ["ifczip", "ifcjson"]:
scene.BIMProperties.ifc_file = output_file
diff --git a/src/blenderbim/blenderbim/bim/module/project/prop.py b/src/blenderbim/blenderbim/bim/module/project/prop.py
index 3b7e5220b1..b648231247 100644
--- a/src/blenderbim/blenderbim/bim/module/project/prop.py
+++ b/src/blenderbim/blenderbim/bim/module/project/prop.py
@@ -148,6 +148,8 @@ class BIMProjectProperties(PropertyGroup):
default="NONE",
)
should_merge_materials_by_colour: BoolProperty(name="Merge Materials by Colour", default=False)
+ should_stream: BoolProperty(name="Stream Data From IFC-SPF (Only for advanced users)", default=False)
+ should_load_geometry: BoolProperty(name="Load Geometry", default=True)
should_use_native_meshes: BoolProperty(name="Native Meshes", default=False)
should_clean_mesh: BoolProperty(name="Clean Meshes", default=True)
should_cache: BoolProperty(name="Cache", default=False)
@@ -165,6 +167,7 @@ class BIMProjectProperties(PropertyGroup):
active_link_index: IntProperty(name="Active Link Index")
export_schema: EnumProperty(items=get_export_schema, name="IFC Schema")
template_file: EnumProperty(items=get_template_file, name="Template File")
+ use_relative_project_path: BoolProperty(name="Use Relative Project Path", default=False)
def get_library_element_index(self, lib_element):
return next((i for i in range(len(self.library_elements)) if self.library_elements[i] == lib_element))
diff --git a/src/blenderbim/blenderbim/bim/module/project/ui.py b/src/blenderbim/blenderbim/bim/module/project/ui.py
index 7681c6a5ed..7c2730f957 100644
--- a/src/blenderbim/blenderbim/bim/module/project/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/project/ui.py
@@ -77,6 +77,8 @@ class BIM_PT_project(Panel):
row = self.layout.row()
row.prop(pprops, "should_cache")
row = self.layout.row()
+ row.prop(pprops, "should_load_geometry")
+ row = self.layout.row()
row.prop(pprops, "should_use_native_meshes")
row = self.layout.row()
row.prop(pprops, "should_merge_materials_by_colour")
diff --git a/src/blenderbim/blenderbim/bim/module/pset/data.py b/src/blenderbim/blenderbim/bim/module/pset/data.py
index 4e763fe276..f30f298dc7 100644
--- a/src/blenderbim/blenderbim/bim/module/pset/data.py
+++ b/src/blenderbim/blenderbim/bim/module/pset/data.py
@@ -18,7 +18,9 @@
import bpy
import ifcopenshell
+import ifcopenshell.util.doc
import blenderbim.tool as tool
+import blenderbim.bim.schema
# TODO: Should this cache belong here? Dunno. Maybe.
@@ -67,6 +69,8 @@ class ObjectPsetsData(Data):
cls.data = {
"psets": cls.psetqtos(tool.Ifc.get_entity(bpy.context.active_object), psets_only=True),
"inherited_psets": cls.inherited_psets(),
+ "pset_name": cls.pset_name(),
+ "qto_name": cls.qto_name(),
}
cls.is_loaded = True
@@ -79,6 +83,35 @@ class ObjectPsetsData(Data):
if element_type:
return cls.psetqtos(element_type)
+ @classmethod
+ def pset_name(cls):
+ obj = bpy.context.active_object
+ element = tool.Ifc.get_entity(obj)
+ if not element:
+ return []
+ psets = blenderbim.bim.schema.ifc.psetqto.get_applicable(element.is_a(), pset_only=True)
+ psetnames = cls.format_pset_enum(psets)
+ assigned_names = ifcopenshell.util.element.get_psets(element, psets_only=True).keys()
+ return [p for p in psetnames if p[0] not in assigned_names]
+
+ @classmethod
+ def qto_name(cls):
+ obj = bpy.context.active_object
+ element = tool.Ifc.get_entity(obj)
+ if not element:
+ return []
+ qtos = blenderbim.bim.schema.ifc.psetqto.get_applicable(element.is_a(), qto_only=True)
+ return cls.format_pset_enum(qtos)
+
+ @classmethod
+ def format_pset_enum(cls, psets):
+ enum_items = []
+ version = tool.Ifc.get_schema()
+ for pset in psets:
+ doc = ifcopenshell.util.doc.get_property_set_doc(version, pset.Name) or {}
+ enum_items.append((pset.Name, pset.Name, doc.get("description", "")))
+ return enum_items
+
class ObjectQtosData(Data):
data = {}
diff --git a/src/blenderbim/blenderbim/bim/module/pset/operator.py b/src/blenderbim/blenderbim/bim/module/pset/operator.py
index 849b321af9..c796a39ecd 100644
--- a/src/blenderbim/blenderbim/bim/module/pset/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/pset/operator.py
@@ -120,6 +120,13 @@ class EnablePsetEditing(bpy.types.Operator):
self.load_single_value(pset_template, prop_template, data)
elif prop_template.TemplateType == "P_ENUMERATEDVALUE":
self.load_enumerated_value(prop_template, data)
+ else:
+ # NOTE: currently unsupported types:
+ # - P_BOUNDEDVALUE
+ # - P_LISTVALUE
+ # - P_REFERENCEVALUE
+ # - P_TABLEVALUE
+ pass
def load_single_value(self, pset_template, prop_template, data):
prop = self.props.properties.add()
@@ -137,8 +144,12 @@ class EnablePsetEditing(bpy.types.Operator):
if prop_template.PrimaryMeasureType in (
"IfcPositiveLengthMeasure",
"IfcLengthMeasure",
- ) or prop_template.TemplateType in ("Q_LENGTH",):
+ ) or prop_template.TemplateType == "Q_LENGTH":
special_type = "LENGTH"
+ elif prop_template.PrimaryMeasureType == "IfcAreaMeasure" or prop_template.TemplateType == "Q_AREA":
+ special_type = "AREA"
+ elif prop_template.PrimaryMeasureType == "IfcVolumeMeasure" or prop_template.TemplateType == "Q_VOLUME":
+ special_type = "VOLUME"
metadata.special_type = special_type
if metadata.data_type == "string":
diff --git a/src/blenderbim/blenderbim/bim/module/pset/prop.py b/src/blenderbim/blenderbim/bim/module/pset/prop.py
index e3a97e466b..d60828a560 100644
--- a/src/blenderbim/blenderbim/bim/module/pset/prop.py
+++ b/src/blenderbim/blenderbim/bim/module/pset/prop.py
@@ -22,7 +22,7 @@ import ifcopenshell
import ifcopenshell.util.element
import blenderbim.tool as tool
from blenderbim.bim.prop import Attribute, StrProperty
-from blenderbim.bim.module.pset.data import AddEditCustomPropertiesData
+from blenderbim.bim.module.pset.data import AddEditCustomPropertiesData, ObjectPsetsData
from blenderbim.bim.ifc import IfcStore
from bpy.types import PropertyGroup
from bpy.props import (
@@ -57,18 +57,10 @@ def blender_formatted_enum_from_psets(psets):
return enum_items
-def get_pset_names(self, context):
- global psetnames
- obj = context.active_object
- if not obj.BIMObjectProperties.ifc_definition_id:
- return []
- element = IfcStore.get_file().by_id(obj.BIMObjectProperties.ifc_definition_id)
- ifc_class = element.is_a()
- if ifc_class not in psetnames:
- psets = blenderbim.bim.schema.ifc.psetqto.get_applicable(ifc_class, pset_only=True)
- psetnames[ifc_class] = blender_formatted_enum_from_psets(psets)
- assigned_names = ifcopenshell.util.element.get_psets(element, psets_only=True).keys()
- return [p for p in psetnames[ifc_class] if p[0] not in assigned_names]
+def get_pset_name(self, context):
+ if not ObjectPsetsData.is_loaded:
+ ObjectPsetsData.load()
+ return ObjectPsetsData.data["pset_name"]
def get_material_pset_names(self, context):
@@ -157,15 +149,10 @@ def get_work_schedule_pset_names(self, context):
return psetnames[ifc_class]
-def get_qto_names(self, context):
- global qtonames
- if "/" in context.active_object.name:
- ifc_class = context.active_object.name.split("/")[0]
- if ifc_class not in qtonames:
- psets = blenderbim.bim.schema.ifc.psetqto.get_applicable(ifc_class, qto_only=True)
- qtonames[ifc_class] = blender_formatted_enum_from_psets(psets)
- return qtonames[ifc_class]
- return []
+def get_qto_name(self, context):
+ if not ObjectPsetsData.is_loaded:
+ ObjectPsetsData.load()
+ return ObjectPsetsData.data["qto_name"]
def get_template_type(self, context):
@@ -197,8 +184,8 @@ class PsetProperties(PropertyGroup):
active_pset_name: StringProperty(name="Pset Name")
active_pset_type: StringProperty(name="Active Pset Type")
properties: CollectionProperty(name="Properties", type=IfcProperty)
- pset_name: EnumProperty(items=get_pset_names, name="Pset Name")
- qto_name: EnumProperty(items=get_qto_names, name="Qto Name")
+ pset_name: EnumProperty(items=get_pset_name, name="Pset Name")
+ qto_name: EnumProperty(items=get_qto_name, name="Qto Name")
class MaterialPsetProperties(PropertyGroup):
diff --git a/src/blenderbim/blenderbim/bim/module/pset/ui.py b/src/blenderbim/blenderbim/bim/module/pset/ui.py
index f677c9158a..cd05f110c3 100644
--- a/src/blenderbim/blenderbim/bim/module/pset/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/pset/ui.py
@@ -49,7 +49,7 @@ def draw_single_property(prop, layout, copy_operator=None):
layout.prop(
prop.metadata,
value_name,
- text=prop.metadata.name,
+ text=prop.metadata.display_name,
)
if prop.metadata.is_uri:
op = layout.operator("bim.select_uri_attribute", text="", icon="FILE_FOLDER")
diff --git a/src/blenderbim/blenderbim/bim/module/root/operator.py b/src/blenderbim/blenderbim/bim/module/root/operator.py
index ad960d650c..5faeabe056 100644
--- a/src/blenderbim/blenderbim/bim/module/root/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/root/operator.py
@@ -168,6 +168,7 @@ class UnlinkObject(bpy.types.Operator):
else:
objects = context.selected_objects
for obj in objects:
+ object_name = obj.name
element = tool.Ifc.get_entity(obj)
if element:
if self.should_delete:
@@ -186,8 +187,8 @@ class UnlinkObject(bpy.types.Operator):
material_slot.material = material_slot.material.copy()
blenderbim.core.style.unlink_style(tool.Ifc, tool.Style, obj=material_slot.material)
blenderbim.core.material.unlink_material(tool.Ifc, obj=material_slot.material)
- if "Ifc" in obj.name and "/" in obj.name:
- obj.name = "/".join(obj.name.split("/")[1:])
+ if "Ifc" in object_name and "/" in object_name:
+ obj.name = object_name.split("/", 1)[1]
return {"FINISHED"}
def draw(self, context):
diff --git a/src/blenderbim/blenderbim/bim/module/sequence/prop.py b/src/blenderbim/blenderbim/bim/module/sequence/prop.py
index 0a27e24757..07929a4771 100644
--- a/src/blenderbim/blenderbim/bim/module/sequence/prop.py
+++ b/src/blenderbim/blenderbim/bim/module/sequence/prop.py
@@ -261,7 +261,7 @@ def update_color_full(self, context):
material = bpy.data.materials.get("color_full")
if material:
color_full = bpy.context.scene.BIMAnimationProperties.color_full
- inputs = material.node_tree.nodes["Principled BSDF"].inputs
+ inputs = tool.Blender.get_material_node(material, "BSDF_PRINCIPLED").inputs
color = inputs["Base Color"].default_value
color[0] = color_full.r
color[1] = color_full.g
@@ -272,7 +272,7 @@ def update_color_progress(self, context):
material = bpy.data.materials.get("color_progress")
if material:
color_progress = bpy.context.scene.BIMAnimationProperties.color_progress
- inputs = material.node_tree.nodes["Principled BSDF"].inputs
+ inputs = tool.Blender.get_material_node(material, "BSDF_PRINCIPLED").inputs
color = inputs["Base Color"].default_value
color[0] = color_progress.r
color[1] = color_progress.g
diff --git a/src/blenderbim/blenderbim/bim/module/spatial/__init__.py b/src/blenderbim/blenderbim/bim/module/spatial/__init__.py
index b29fff2371..f1223bb684 100644
--- a/src/blenderbim/blenderbim/bim/module/spatial/__init__.py
+++ b/src/blenderbim/blenderbim/bim/module/spatial/__init__.py
@@ -37,6 +37,7 @@ classes = (
operator.ContractContainer,
operator.ExpandContainer,
operator.DeleteContainer,
+ operator.SelectDecomposedElements,
prop.SpatialElement,
prop.BIMSpatialProperties,
prop.BIMObjectSpatialProperties,
@@ -45,7 +46,7 @@ classes = (
ui.BIM_PT_spatial,
ui.BIM_UL_containers,
ui.BIM_UL_containers_manager,
- ui.BIM_PT_Storeys,
+ ui.BIM_PT_SpatialManager,
workspace.Hotkey,
)
@@ -59,6 +60,8 @@ def register():
def unregister():
+ if not bpy.app.background:
+ bpy.utils.unregister_tool(workspace.SpatialTool)
del bpy.types.Scene.BIMSpatialProperties
del bpy.types.Object.BIMObjectSpatialProperties
del bpy.types.Scene.BIMSpatialManagerProperties
diff --git a/src/blenderbim/blenderbim/bim/module/spatial/operator.py b/src/blenderbim/blenderbim/bim/module/spatial/operator.py
index 4cc2298ec8..451ee442ac 100644
--- a/src/blenderbim/blenderbim/bim/module/spatial/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/spatial/operator.py
@@ -246,3 +246,13 @@ class AddBuildingStorey(bpy.types.Operator, tool.Ifc.Operator):
part_name="Unnamed",
)
core.load_container_manager(tool.Spatial)
+
+
+class SelectDecomposedElements(bpy.types.Operator, tool.Ifc.Operator):
+ bl_idname = "bim.select_decomposed_elements"
+ bl_label = "Select Children"
+ bl_options = {"REGISTER", "UNDO"}
+
+ def _execute(self, context):
+ core.select_decomposed_elements(tool.Spatial)
+ return {"FINISHED"}
diff --git a/src/blenderbim/blenderbim/bim/module/spatial/ops.authoring.spatial.dat b/src/blenderbim/blenderbim/bim/module/spatial/ops.authoring.spatial.dat
new file mode 100644
index 0000000000..7170d86fd5
Binary files /dev/null and b/src/blenderbim/blenderbim/bim/module/spatial/ops.authoring.spatial.dat differ
diff --git a/src/blenderbim/blenderbim/bim/module/spatial/ui.py b/src/blenderbim/blenderbim/bim/module/spatial/ui.py
index 46451f8f56..e6d0c62432 100644
--- a/src/blenderbim/blenderbim/bim/module/spatial/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/spatial/ui.py
@@ -96,17 +96,18 @@ class BIM_UL_containers(UIList):
)
-class BIM_PT_Storeys(Panel):
- bl_label = "Spatial Manager"
- bl_idname = "BIM_PT_Storeys"
- bl_space_type = "VIEW_3D"
- bl_region_type = "UI"
+class BIM_PT_SpatialManager(Panel):
+ bl_label = "IFC Spatial Manager"
+ bl_idname = "BIM_PT_SpatialManager"
+ bl_space_type = "PROPERTIES"
+ bl_region_type = "WINDOW"
+ bl_context = "scene"
bl_options = {"DEFAULT_CLOSED"}
- bl_parent_id = "BIM_PT_GridsSpatialManager"
+ bl_parent_id = "BIM_PT_project_setup"
@classmethod
def poll(cls, context):
- return tool.Ifc.get()
+ return tool.Ifc.get() and tool.Ifc.schema().name() != "IFC2X3"
def draw(self, context):
if not SpatialData.is_loaded:
@@ -118,6 +119,7 @@ class BIM_PT_Storeys(Panel):
ifc_definition_id = self.props.containers[self.props.active_container_index].ifc_definition_id
row = self.layout.row()
row.alignment = "RIGHT"
+ row.operator("bim.select_decomposed_elements", icon="RESTRICT_SELECT_OFF", text="Select Children")
if SpatialData.data["containers"][ifc_definition_id]["type"] in ["IfcBuildingStorey", "IfcBuilding"]:
row.operator("bim.add_building_storey", icon="ADD", text="Add storey").part_class = "IfcBuildingStorey"
row.operator("bim.delete_container", icon="X", text="Delete").container = ifc_definition_id
diff --git a/src/blenderbim/blenderbim/bim/module/spatial/workspace.py b/src/blenderbim/blenderbim/bim/module/spatial/workspace.py
index 7c592d12d7..b52232a61f 100644
--- a/src/blenderbim/blenderbim/bim/module/spatial/workspace.py
+++ b/src/blenderbim/blenderbim/bim/module/spatial/workspace.py
@@ -21,6 +21,7 @@ import os
import bpy
import blenderbim.tool as tool
from blenderbim.bim.helper import prop_with_search
+from blenderbim.bim.module.model.data import AuthoringData
from bpy.types import WorkSpaceTool
from blenderbim.bim.ifc import IfcStore
import blenderbim.bim.handler
@@ -41,10 +42,14 @@ class SpatialTool(WorkSpaceTool):
bl_label = "Spatial Tool"
bl_description = "Gives you Spatial related superpowers"
# TODO: replace with spatial icon
- bl_icon = os.path.join(os.path.dirname(__file__), "ops.authoring.annotation")
+ bl_icon = os.path.join(os.path.dirname(__file__), "ops.authoring.spatial")
bl_widget = None
bl_keymap = tool.Blender.get_default_selection_keypmap() + (
+ ("bim.spatial_hotkey", {"type": "B", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_B")]}),
("bim.spatial_hotkey", {"type": "A", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_A")]}),
+ ("bim.spatial_hotkey", {"type": "B", "value": "PRESS", "alt": True}, {"properties": [("hotkey", "A_B")]}),
+ ("bim.spatial_hotkey", {"type": "T", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_T")]}),
+ ("bim.spatial_hotkey", {"type": "G", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_G")]}),
)
def draw_settings(context, layout, ws_tool):
@@ -67,6 +72,7 @@ class SpatialToolUI:
def draw(cls, context, layout):
cls.layout = layout
# cls.props = context.scene.BIMSpatialProperties
+ cls.model_props = context.scene.BIMModelProperties
row = cls.layout.row(align=True)
if not tool.Ifc.get():
@@ -76,19 +82,46 @@ class SpatialToolUI:
# if not SpatialData.is_loaded:
# SpatialData.load()
+ if not AuthoringData.is_loaded:
+ AuthoringData.load()
+
cls.draw_type_selection_interface(context)
+ cls.draw_default_interface(context)
if context.active_object and context.selected_objects:
cls.draw_selected_object_interface(context)
- cls.draw_default_interface()
@classmethod
- def draw_default_interface(cls):
- add_layout_hotkey(cls.layout, "Placeholder", "S_A", "Placeholder Operator")
+ def draw_default_interface(cls, context):
+ row = cls.layout.row(align=True)
+ row.label(text="", icon="EVENT_SHIFT")
+ row.label(text="", icon="EVENT_A")
+ if context.selected_objects:
+ row.operator("bim.generate_spaces_from_walls")
+ else:
+ row.operator("bim.generate_space")
+ row = cls.layout.row(align=True)
+ row.label(text="", icon="EVENT_SHIFT")
+ row.label(text="", icon="EVENT_T")
+ row.operator("bim.toggle_space_visibility")
@classmethod
def draw_selected_object_interface(cls, context):
- pass
+ active_obj = bpy.context.active_object
+ element = tool.Ifc.get_entity(active_obj)
+ if element and bpy.context.selected_objects and element.is_a("IfcSpace"):
+ row = cls.layout.row(align=True)
+ row.label(text="", icon="EVENT_SHIFT")
+ row.label(text="", icon="EVENT_G")
+ row.operator("bim.generate_space", text="Regen")
+
+ row = cls.layout.row(align=True)
+ row.label(text="", icon="EVENT_SHIFT")
+ row.label(text="", icon="EVENT_B")
+ row.prop(cls.model_props, "boundary_class", text="")
+ row.operator("bim.add_boundary", text="Add Boundary")
+
+ add_layout_hotkey(cls.layout, "Boundaries", "A_B", "Toggle boundaries")
@classmethod
def draw_type_selection_interface(cls, context):
@@ -123,4 +156,26 @@ class Hotkey(bpy.types.Operator, Operator):
pass
def hotkey_S_A(self):
- pass
+ active_obj = bpy.context.active_object
+ element = tool.Ifc.get_entity(active_obj)
+ if element and bpy.context.selected_objects and element.is_a("IfcWall"):
+ bpy.ops.bim.generate_spaces_from_walls()
+ else:
+ bpy.ops.bim.generate_space()
+
+ def hotkey_S_B(self):
+ bpy.ops.bim.add_boundary()
+
+ def hotkey_A_B(self):
+ if not bpy.context.selected_objects:
+ return
+ if AuthoringData.data["has_visible_boundaries"]:
+ bpy.ops.bim.hide_boundaries()
+ else:
+ bpy.ops.bim.show_boundaries()
+
+ def hotkey_S_T(self):
+ bpy.ops.bim.toggle_space_visibility()
+
+ def hotkey_S_G(self):
+ bpy.ops.bim.generate_space()
diff --git a/src/blenderbim/blenderbim/bim/module/structural/__init__.py b/src/blenderbim/blenderbim/bim/module/structural/__init__.py
index 8fde813631..99f44a971a 100644
--- a/src/blenderbim/blenderbim/bim/module/structural/__init__.py
+++ b/src/blenderbim/blenderbim/bim/module/structural/__init__.py
@@ -100,5 +100,7 @@ def register():
def unregister():
+ if not bpy.app.background:
+ bpy.utils.unregister_tool(workspace.StructuralTool)
del bpy.types.Scene.BIMStructuralProperties
del bpy.types.Object.BIMStructuralProperties
diff --git a/src/blenderbim/blenderbim/bim/module/structural/ops.authoring.structural.dat b/src/blenderbim/blenderbim/bim/module/structural/ops.authoring.structural.dat
new file mode 100644
index 0000000000..2a23afcd12
Binary files /dev/null and b/src/blenderbim/blenderbim/bim/module/structural/ops.authoring.structural.dat differ
diff --git a/src/blenderbim/blenderbim/bim/module/structural/workspace.py b/src/blenderbim/blenderbim/bim/module/structural/workspace.py
index 22d598e499..c5f3386b70 100644
--- a/src/blenderbim/blenderbim/bim/module/structural/workspace.py
+++ b/src/blenderbim/blenderbim/bim/module/structural/workspace.py
@@ -41,7 +41,7 @@ class StructuralTool(WorkSpaceTool):
bl_label = "Structural Tool"
bl_description = "Gives you Structure related superpowers"
# TODO: replace with structural icon
- bl_icon = os.path.join(os.path.dirname(__file__), "ops.authoring.annotation")
+ bl_icon = os.path.join(os.path.dirname(__file__), "ops.authoring.structural")
bl_widget = None
bl_keymap = tool.Blender.get_default_selection_keypmap() + (
("bim.structural_hotkey", {"type": "A", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_A")]}),
diff --git a/src/blenderbim/blenderbim/bim/module/style/__init__.py b/src/blenderbim/blenderbim/bim/module/style/__init__.py
index d8d6b7f344..8d37b57ee1 100644
--- a/src/blenderbim/blenderbim/bim/module/style/__init__.py
+++ b/src/blenderbim/blenderbim/bim/module/style/__init__.py
@@ -21,23 +21,32 @@ from . import ui, prop, operator
classes = (
operator.AddStyle,
- operator.DisableEditingStyle,
- operator.DisableEditingStyles,
- operator.EditStyle,
operator.EnableEditingStyle,
+ operator.DisableEditingStyle,
+ operator.EditStyle,
+ operator.UpdateCurrentStyle,
+ operator.EnableEditingExternalStyle,
+ operator.DisableEditingExternalStyle,
+ operator.EditExternalStyle,
+ operator.DisableEditingStyles,
+ operator.BrowseExternalStyle,
+ operator.ActivateExternalStyle,
operator.LoadStyles,
operator.RemoveStyle,
operator.SelectByStyle,
operator.UnlinkStyle,
operator.UpdateStyleColours,
operator.UpdateStyleTextures,
+ operator.ClearTextureMapPath,
prop.Style,
prop.BIMStylesProperties,
prop.BIMStyleProperties,
ui.BIM_PT_styles,
ui.BIM_PT_style,
ui.BIM_PT_style_attributes,
+ ui.BIM_PT_external_style_attributes,
ui.BIM_UL_styles,
+ ui.BIM_PT_STYLE_GRAPH,
)
diff --git a/src/blenderbim/blenderbim/bim/module/style/data.py b/src/blenderbim/blenderbim/bim/module/style/data.py
index 9826b994fa..f4fcbb56b5 100644
--- a/src/blenderbim/blenderbim/bim/module/style/data.py
+++ b/src/blenderbim/blenderbim/bim/module/style/data.py
@@ -56,7 +56,12 @@ class StyleAttributesData:
@classmethod
def load(cls):
- cls.data = {"ifc_style_id": cls.ifc_style_id(), "attributes": cls.get_attributes()}
+ cls.data = {
+ "ifc_style_id": cls.ifc_style_id(),
+ "attributes": cls.get_attributes(),
+ "style_elements": cls.get_style_elements(),
+ }
+ cls.data["external_style_attributes"] = cls.get_external_style_attributes()
cls.is_loaded = True
@classmethod
@@ -72,3 +77,19 @@ class StyleAttributesData:
continue
results.append({"name": name, "value": str(value)})
return results
+
+ @classmethod
+ def get_style_elements(cls):
+ return tool.Style.get_style_elements(bpy.context.active_object.active_material)
+
+ @classmethod
+ def get_external_style_attributes(cls):
+ external_style = cls.data["style_elements"].get("IfcExternallyDefinedSurfaceStyle", None)
+ if not external_style:
+ return None
+ results = []
+ for name, value in external_style.get_info().items():
+ if name in ["id", "type"]:
+ continue
+ results.append({"name": name, "value": str(value)})
+ return results
diff --git a/src/blenderbim/blenderbim/bim/module/style/operator.py b/src/blenderbim/blenderbim/bim/module/style/operator.py
index 09e1215b1f..f3ee2ace67 100644
--- a/src/blenderbim/blenderbim/bim/module/style/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/style/operator.py
@@ -22,15 +22,34 @@ import blenderbim.tool as tool
import blenderbim.core.style as core
import ifcopenshell.util.representation
from blenderbim.bim.ifc import IfcStore
+from blenderbim.bim.module.style.data import StylesData, StyleAttributesData
+from pathlib import Path
+import os
class UpdateStyleColours(bpy.types.Operator, tool.Ifc.Operator):
bl_idname = "bim.update_style_colours"
- bl_label = "Update Style Colours"
+ bl_label = "Save Current Shading Style"
+ bl_description = (
+ "Save current style values to IfcSurfaceStyleShading.\n\n" + "ALT+CLICK to see saved values details"
+ )
bl_options = {"REGISTER", "UNDO"}
+ verbose: bpy.props.BoolProperty(default=False, options={"SKIP_SAVE"})
+
+ def invoke(self, context, event):
+ # verobse print to console on alt+click
+ # make sure to use SKIP_SAVE on property, otherwise it might get stuck
+ if event.type == "LEFTMOUSE" and event.alt:
+ self.verbose = True
+ return self.execute(context)
+
def _execute(self, context):
- core.update_style_colours(tool.Ifc, tool.Style, obj=context.active_object.active_material)
+ mat = context.active_object.active_material
+ core.update_style_colours(tool.Ifc, tool.Style, obj=mat, verbose=self.verbose)
+ if self.verbose:
+ self.report({"INFO"}, "Check the system console to see saved style properties")
+ tool.Style.set_surface_style_props(mat)
class UpdateStyleTextures(bpy.types.Operator, tool.Ifc.Operator):
@@ -103,6 +122,249 @@ class EditStyle(bpy.types.Operator, tool.Ifc.Operator):
core.edit_style(tool.Ifc, tool.Style, obj=context.active_object.active_material)
+class UpdateCurrentStyle(bpy.types.Operator):
+ bl_idname = "bim.update_current_style"
+ bl_label = "Update Current Style"
+ bl_description = (
+ "Update style for all selected objects according to current style type\n(Shading/External).\n\n"
+ + "SHIFT+CLICK to update ALL styles in the .ifc file to current style type"
+ )
+ bl_options = {"REGISTER", "UNDO"}
+ update_all: bpy.props.BoolProperty(name="Update All", default=False, options={"SKIP_SAVE"})
+
+ @classmethod
+ def poll(cls, context):
+ poll = (
+ context.active_object is not None
+ and context.active_object.active_material is not None
+ and context.active_object.active_material.BIMMaterialProperties.ifc_style_id != 0
+ )
+ if not poll:
+ cls.poll_message_set(
+ "Object is not selected or material is not assigned or material doesn't have IFC Style"
+ )
+ return poll
+
+ def invoke(self, context, event):
+ # updating all styles on shift+click
+ # make sure to use SKIP_SAVE on property, otherwise it might get stuck
+ if event.type == "LEFTMOUSE" and event.shift:
+ self.update_all = True
+ return self.execute(context)
+
+ def execute(self, context):
+ current_style_type = context.active_object.active_material.BIMStyleProperties.active_style_type
+ if self.update_all:
+ context.scene.BIMStylesProperties.active_style_type = current_style_type
+ return {"FINISHED"}
+
+ materials = []
+ for obj in context.selected_objects:
+ mat = obj.active_material
+ if mat and mat.BIMMaterialProperties.ifc_style_id != 0:
+ mat.BIMStyleProperties.active_style_type = current_style_type
+ return {"FINISHED"}
+
+
+class BrowseExternalStyle(bpy.types.Operator):
+ bl_idname = "bim.browse_external_style"
+ bl_label = "Browse External Style"
+ bl_options = {"REGISTER", "UNDO"}
+
+ filepath: bpy.props.StringProperty(
+ name="File Path", description="Filepath used to import from", maxlen=1024, default="", subtype="FILE_PATH"
+ )
+
+ filter_glob: bpy.props.StringProperty(
+ default="*.blend",
+ options={"HIDDEN"},
+ )
+
+ def get_data_block_types(self, context):
+ return [("materials", "materials", "materials")]
+ # NOTE: the code below can be used later when we'll be adding other data-blocks besides materials
+ l = [("0", "", "")]
+ SUPPORTED_DATA_BLOCKS = ("materials", "textures", "brushes")
+ if os.path.exists(self.filepath) and self.filepath.endswith(".blend"):
+ with bpy.data.libraries.load(self.filepath) as (data_from, data_to):
+ for data_block_type in dir(data_from):
+ if data_block_type not in SUPPORTED_DATA_BLOCKS:
+ continue
+ data = getattr(data_from, data_block_type)
+ if data:
+ item = (data_block_type,) * 3
+ l.append(item)
+ return l
+
+ def get_data_blocks(self, context):
+ l = [("", "", "")]
+ if self.data_block_type != "0" and os.path.exists(self.filepath) and self.filepath.endswith(".blend"):
+ with bpy.data.libraries.load(self.filepath) as (data_from, data_to):
+ objects = getattr(data_from, self.data_block_type)
+ for o in objects:
+ l.append((o, o, o))
+ return l
+
+ data_block_type: bpy.props.EnumProperty(
+ name="Data Block Type",
+ description="List of data blocks in the .blend file",
+ items=get_data_block_types,
+ )
+
+ data_block: bpy.props.EnumProperty(
+ name="List of objects in the .blend file",
+ description="List of objects in the .blend file",
+ items=get_data_blocks,
+ )
+ use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=True)
+ directory: bpy.props.StringProperty(
+ name="Directory",
+ description="Start file browsing directory",
+ default="",
+ )
+
+ def invoke(self, context, event):
+ mat = context.active_object.active_material
+ external_style = tool.Style.get_style_elements(mat).get("IfcExternallyDefinedSurfaceStyle", None)
+ # automatically select previously selected external style in file browser
+ if external_style and self.filepath == "":
+ style_path = Path(tool.Ifc.resolve_uri(external_style.Location))
+ self.directory = str(style_path.parent)
+ self.filepath = str(style_path)
+ self.data_block_type, self.data_block = external_style.Identification.split("/")
+
+ context.window_manager.fileselect_add(self)
+ return {"RUNNING_MODAL"}
+
+ def draw(self, context):
+ layout = self.layout
+ layout.label(text="Data Block Type")
+ layout.prop(self, "data_block_type", text="", icon="GROUP")
+ layout.label(text="Data Block")
+ layout.prop(self, "data_block", text="")
+ if bpy.data.is_saved:
+ layout.prop(self, "use_relative_path")
+ else:
+ self.use_relative_path = False
+ layout.label(text="Save the .blend file first ")
+ layout.label(text="to use relative paths for .ifc.")
+
+ def execute(self, context):
+ if self.data_block_type == "0":
+ self.report({"ERROR"}, "Select a data block type")
+ return {"CANCELLED"}
+
+ if self.data_block == "":
+ self.report({"ERROR"}, "Select a data block")
+ return {"CANCELLED"}
+
+ if not os.path.exists(self.filepath):
+ self.report({"ERROR"}, f"File not found:\n'{self.filepath}'")
+ return {"CANCELLED"}
+
+ db = tool.Blender.append_data_block(self.filepath, self.data_block_type, self.data_block)
+ if not db["data_block"]:
+ self.report({"ERROR"}, db["msg"])
+ return {"CANCELLED"}
+
+ bpy.data.materials.remove(db["data_block"])
+
+ if not StyleAttributesData.is_loaded:
+ StyleAttributesData.load()
+ external_style = StyleAttributesData.data["style_elements"].get("IfcExternallyDefinedSurfaceStyle", None)
+
+ if self.use_relative_path:
+ filepath = os.path.relpath(self.filepath, bpy.path.abspath("//"))
+ else:
+ filepath = self.filepath
+
+ attributes = {
+ "Location": filepath,
+ "Identification": f"{self.data_block_type}/{self.data_block}",
+ "Name": self.data_block,
+ }
+ if not external_style:
+ core.add_external_style(
+ tool.Ifc, tool.Style, obj=context.active_object.active_material, attributes=attributes
+ )
+ else:
+ core.update_external_style(tool.Ifc, tool.Style, external_style=external_style, attributes=attributes)
+
+ StyleAttributesData.is_loaded = False
+ return {"FINISHED"}
+
+
+class EnableEditingExternalStyle(bpy.types.Operator, tool.Ifc.Operator):
+ bl_idname = "bim.enable_editing_external_style"
+ bl_label = "Enable Editing External Style"
+ bl_options = {"REGISTER", "UNDO"}
+
+ def _execute(self, context):
+ core.enable_editing_external_style(tool.Style, obj=context.active_object.active_material)
+
+
+class DisableEditingExternalStyle(bpy.types.Operator, tool.Ifc.Operator):
+ bl_idname = "bim.disable_editing_external_style"
+ bl_options = {"REGISTER", "UNDO"}
+ bl_label = "Disable Editing External Style"
+
+ def _execute(self, context):
+ core.disable_editing_external_style(tool.Style, obj=context.active_object.active_material)
+
+
+class EditExternalStyle(bpy.types.Operator, tool.Ifc.Operator):
+ bl_idname = "bim.edit_external_style"
+ bl_label = "Edit External Style"
+ bl_options = {"REGISTER", "UNDO"}
+
+ def _execute(self, context):
+ core.edit_external_style(tool.Ifc, tool.Style, obj=context.active_object.active_material)
+
+
+class ActivateExternalStyle(bpy.types.Operator, tool.Ifc.Operator):
+ bl_idname = "bim.activate_external_style"
+ bl_label = "Activate External Style"
+ bl_options = {"REGISTER", "UNDO", "INTERNAL"}
+
+ material_name: bpy.props.StringProperty(name="Material Name", default="")
+
+ def _execute(self, context):
+ if not self.material_name:
+ material = context.active_object.active_material
+ else:
+ material = bpy.data.materials[self.material_name]
+ external_style = tool.Style.get_style_elements(material)["IfcExternallyDefinedSurfaceStyle"]
+ data_block_type, data_block = external_style.Identification.split("/")
+ style_path = Path(tool.Ifc.resolve_uri(external_style.Location))
+
+ if style_path.suffix != ".blend":
+ self.report({"ERROR"}, f"Only Blender external styles are supported")
+ return {"CANCELLED"}
+
+ if not style_path.exists():
+ self.report({"ERROR"}, f"File not found:\n'{style_path}'")
+ return {"CANCELLED"}
+
+ db = tool.Blender.append_data_block(str(style_path), data_block_type, data_block)
+ if not db["data_block"]:
+ self.report({"ERROR"}, db["msg"])
+ return {"CANCELLED"}
+
+ props_to_copy = [
+ "diffuse_color",
+ "metallic",
+ "roughness",
+ "specular_intensity",
+ "use_nodes",
+ ]
+ for prop_name in props_to_copy:
+ setattr(material, prop_name, getattr(db["data_block"], prop_name))
+
+ if material.use_nodes:
+ tool.Blender.copy_node_graph(material, db["data_block"])
+ bpy.data.materials.remove(db["data_block"])
+
+
class DisableEditingStyles(bpy.types.Operator, tool.Ifc.Operator):
bl_idname = "bim.disable_editing_styles"
bl_options = {"REGISTER", "UNDO"}
@@ -129,4 +391,26 @@ class SelectByStyle(bpy.types.Operator, tool.Ifc.Operator):
style: bpy.props.IntProperty()
def _execute(self, context):
- core.select_by_style(tool.Style, style=tool.Ifc.get().by_id(self.style))
+ core.select_by_style(tool.Style, tool.Spatial, style=tool.Ifc.get().by_id(self.style))
+
+
+class ClearTextureMapPath(bpy.types.Operator):
+ bl_idname = "bim.clear_texture_map_path"
+ bl_label = "Clear Texture Map Path"
+ bl_options = {"REGISTER", "UNDO"}
+ texture_map_prop: bpy.props.StringProperty(default="")
+
+ @classmethod
+ def poll(cls, context):
+ poll = getattr(context, "material", None)
+ if not poll:
+ cls.poll_message_set("Select a material")
+ return poll
+
+ def execute(self, context):
+ if not self.texture_map_prop:
+ self.report({"ERROR"}, "Provide a texture map")
+ return {"CANCELLED"}
+ props = context.material.BIMStyleProperties
+ setattr(props, self.texture_map_prop, "")
+ return {"FINISHED"}
diff --git a/src/blenderbim/blenderbim/bim/module/style/prop.py b/src/blenderbim/blenderbim/bim/module/style/prop.py
index f8666f8793..f2faba9dc2 100644
--- a/src/blenderbim/blenderbim/bim/module/style/prop.py
+++ b/src/blenderbim/blenderbim/bim/module/style/prop.py
@@ -31,6 +31,7 @@ from bpy.props import (
FloatVectorProperty,
CollectionProperty,
)
+import blenderbim.tool as tool
def get_style_types(self, context):
@@ -45,13 +46,172 @@ class Style(PropertyGroup):
total_elements: IntProperty(name="Total Elements")
+STYLE_TYPES = [
+ ("Shading", "Shading", ""),
+ ("External", "External", ""),
+]
+
+
+def update_shading_styles(self, context):
+ for mat in bpy.data.materials:
+ if mat.BIMMaterialProperties.ifc_style_id == 0:
+ continue
+ tool.Style.change_current_style_type(mat, self.active_style_type)
+
+
class BIMStylesProperties(PropertyGroup):
is_editing: BoolProperty(name="Is Editing")
style_type: EnumProperty(items=get_style_types, name="Style Type")
styles: CollectionProperty(name="Styles", type=Style)
active_style_index: IntProperty(name="Active Style Index")
+ active_style_type: EnumProperty(
+ name="Active Style Type",
+ description="Update current blender material to match style type for all objects in the scene",
+ items=STYLE_TYPES,
+ default="Shading",
+ update=update_shading_styles,
+ )
+
+
+def update_shading_style(self, context):
+ blender_material = self.id_data
+ style_elements = tool.Style.get_style_elements(blender_material)
+ if self.active_style_type == "External":
+ if tool.Style.has_blender_external_style(style_elements):
+ bpy.ops.bim.activate_external_style(material_name=blender_material.name)
+
+ elif self.active_style_type == "Shading":
+ style_elements = tool.Style.get_style_elements(blender_material)
+ rendering_style = None
+ texture_style = None
+
+ for surface_style in style_elements.values():
+ if surface_style.is_a() == "IfcSurfaceStyleShading":
+ tool.Loader.create_surface_style_shading(blender_material, surface_style)
+ elif surface_style.is_a("IfcSurfaceStyleRendering"):
+ rendering_style = surface_style
+ tool.Loader.create_surface_style_rendering(blender_material, surface_style)
+ elif surface_style.is_a("IfcSurfaceStyleWithTextures"):
+ texture_style = surface_style
+
+ if rendering_style and texture_style:
+ tool.Loader.create_surface_style_with_textures(blender_material, rendering_style, texture_style)
+ tool.Style.set_surface_style_props(blender_material)
+ tool.Style.record_shading(blender_material)
+
+
+# TODO: support more more methods
+REFLECTANCE_METHODS = [
+ ("PHYSICAL", "PHYSICAL", ""),
+ ("FLAT", "FLAT", ""),
+ # ("METAL", "METAL", ""),
+ # ("MATT", "MATT", ""),
+ # ("GLASS", "GLASS", ""),
+ # ("NOTDEFINED", "NOTDEFINED", ""),
+]
+
+
+def update_shader_graph(self, context):
+ if not self.update_graph:
+ return
+
+ material = self.id_data
+ style_data = tool.Style.get_surface_style_from_props(material)
+ textures_data = tool.Style.get_texture_style_from_props(material)
+ tool.Loader.create_surface_style_rendering(material, style_data)
+ tool.Loader.create_surface_style_with_textures(material, style_data, textures_data)
+
+
+def update_graph_get(self):
+ return self.get("update_graph", True)
+
+
+def update_graph_set(self, value):
+ self["update_graph"] = value
+ if value:
+ material = self.id_data
+ tool.Style.set_surface_style_props(material)
class BIMStyleProperties(PropertyGroup):
attributes: CollectionProperty(name="Attributes", type=Attribute)
is_editing: BoolProperty(name="Is Editing")
+
+ external_style_attributes: CollectionProperty(name="External Style Attributes", type=Attribute)
+ is_editing_external_style: BoolProperty(name="Is Editing External Style")
+
+ active_style_type: EnumProperty(
+ name="Active Style Type",
+ description="Update current blender material to match style type",
+ items=STYLE_TYPES,
+ default="Shading",
+ update=update_shading_style,
+ )
+
+ # GLTF style properties
+ update_graph: BoolProperty(
+ name="Update Shade Graph on Prop Change",
+ description="Update shader graph in real time\nas you update style properties",
+ default=True,
+ get=update_graph_get,
+ set=update_graph_set,
+ )
+ reflectance_method: EnumProperty(
+ name="Reflectance Method",
+ description="Reflectance method to use for the material",
+ items=REFLECTANCE_METHODS,
+ default="PHYSICAL",
+ update=update_shader_graph,
+ )
+ surface_color: bpy.props.FloatVectorProperty(
+ name="Surface Color",
+ subtype="COLOR",
+ default=(1, 1, 1, 1),
+ min=0.0,
+ max=1.0,
+ size=4,
+ update=update_shader_graph,
+ )
+ diffuse_color: bpy.props.FloatVectorProperty(
+ name="Diffuse Color",
+ subtype="COLOR",
+ default=(1, 1, 1, 1),
+ min=0.0,
+ max=1.0,
+ size=4,
+ update=update_shader_graph,
+ )
+ transparency: bpy.props.FloatProperty(
+ name="Transparency", default=0.0, min=0.0, max=1.0, update=update_shader_graph
+ )
+ roughness: bpy.props.FloatProperty(name="Roughness", default=0.0, min=0.0, max=1.0, update=update_shader_graph)
+ metallic: bpy.props.FloatProperty(name="Metallic", default=0.0, min=0.0, max=1.0, update=update_shader_graph)
+ normal_path: bpy.props.StringProperty(
+ name="NormalMap",
+ maxlen=1024,
+ default="",
+ subtype="FILE_PATH",
+ update=update_shader_graph,
+ )
+ emissive_path: bpy.props.StringProperty(
+ name="Emissive",
+ maxlen=1024,
+ default="",
+ subtype="FILE_PATH",
+ update=update_shader_graph,
+ )
+ metallic_roughness_path: bpy.props.StringProperty(
+ name="Metallic/Roughness",
+ maxlen=1024,
+ default="",
+ subtype="FILE_PATH",
+ update=update_shader_graph,
+ description="Green Channel = Roughness,\nBlue Channel = Metallic",
+ )
+ diffuse_path: bpy.props.StringProperty(
+ name="Diffuse",
+ maxlen=1024,
+ default="",
+ subtype="FILE_PATH",
+ update=update_shader_graph,
+ )
diff --git a/src/blenderbim/blenderbim/bim/module/style/ui.py b/src/blenderbim/blenderbim/bim/module/style/ui.py
index cefc9ff1f0..54a0837921 100644
--- a/src/blenderbim/blenderbim/bim/module/style/ui.py
+++ b/src/blenderbim/blenderbim/bim/module/style/ui.py
@@ -65,6 +65,24 @@ class BIM_PT_styles(Panel):
self.layout.template_list("BIM_UL_styles", "", self.props, "styles", self.props, "active_style_index")
+def draw_style_ui(self, context):
+ mat = context.material
+ props = mat.BIMMaterialProperties
+ style_props = mat.BIMStyleProperties
+ row = self.layout.row(align=True)
+ if not props.ifc_style_id:
+ row.operator("bim.add_style", icon="ADD")
+ return
+
+ row.prop(style_props, "active_style_type", icon="SHADING_RENDERED", text="")
+ row.operator("bim.update_current_style", icon="FILE_REFRESH", text="")
+ row = self.layout.row(align=True)
+ row.operator("bim.update_style_colours", icon="GREASEPENCIL")
+ row.operator("bim.update_style_textures", icon="TEXTURE", text="")
+ row.operator("bim.unlink_style", icon="UNLINKED", text="")
+ row.operator("bim.remove_style", icon="X", text="").style = props.ifc_style_id
+
+
class BIM_PT_style(MaterialButtonsPanel, Panel):
bl_label = "IFC Style"
bl_idname = "BIM_PT_style"
@@ -81,19 +99,13 @@ class BIM_PT_style(MaterialButtonsPanel, Panel):
)
def draw(self, context):
- props = context.active_object.active_material.BIMMaterialProperties
mat = context.material
+ props = mat.BIMMaterialProperties
+ draw_style_ui(self, context)
+ if not props.ifc_style_id:
+ return
row = self.layout.row(align=True)
- if props.ifc_style_id:
- row.operator("bim.update_style_colours", icon="GREASEPENCIL")
- row.operator("bim.update_style_textures", icon="TEXTURE", text="")
- row.operator("bim.unlink_style", icon="UNLINKED", text="")
- row.operator("bim.remove_style", icon="X", text="").style = props.ifc_style_id
- row = self.layout.row(align=True)
- row.prop(mat, "diffuse_color", text="Color")
-
- else:
- row.operator("bim.add_style", icon="ADD")
+ row.prop(mat, "diffuse_color", text="Viewport Color" if mat.use_nodes else "Render Color")
class BIM_PT_style_attributes(Panel):
@@ -102,6 +114,7 @@ class BIM_PT_style_attributes(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "material"
+ bl_parent_id = "BIM_PT_style"
@classmethod
def poll(cls, context):
@@ -143,6 +156,61 @@ class BIM_PT_style_attributes(Panel):
row.label(text=attribute["value"])
+class BIM_PT_external_style_attributes(Panel):
+ bl_label = "IFC External Surface Style"
+ bl_idname = "BIM_PT_external_style_attributes"
+ bl_space_type = "PROPERTIES"
+ bl_region_type = "WINDOW"
+ bl_context = "material"
+ bl_parent_id = "BIM_PT_style"
+
+ @classmethod
+ def poll(cls, context):
+ if not IfcStore.get_file():
+ return False
+ try:
+ return bool(context.active_object.active_material.BIMMaterialProperties.ifc_style_id)
+ except:
+ return False
+
+ def draw(self, context):
+ if not StyleAttributesData.is_loaded or (
+ context.active_object.active_material.BIMMaterialProperties.ifc_style_id
+ != StyleAttributesData.data["ifc_style_id"]
+ ):
+ StyleAttributesData.load()
+
+ mat = context.active_object.active_material
+ mprops = mat.BIMMaterialProperties
+ props = mat.BIMStyleProperties
+
+ external_style = StyleAttributesData.data["style_elements"].get("IfcExternallyDefinedSurfaceStyle", None)
+ if not external_style:
+ row = self.layout.row(align=True)
+ row.operator("bim.browse_external_style", text="Add External Style", icon="ADD")
+ return
+
+ row = self.layout.row(align=True)
+ row.label(text="Parameters:")
+
+ if props.is_editing_external_style:
+ row.operator("bim.edit_external_style", icon="CHECKMARK", text="")
+ row.operator("bim.disable_editing_external_style", icon="CANCEL", text="")
+ blenderbim.bim.helper.draw_attributes(props.external_style_attributes, self.layout)
+ else:
+ row.operator("bim.browse_external_style", icon="APPEND_BLEND", text="")
+ row.operator("bim.enable_editing_external_style", icon="GREASEPENCIL", text="")
+
+ row = self.layout.row(align=True)
+ row.label(text="STEP ID")
+ row.label(text=str(external_style.id()))
+
+ for attribute in StyleAttributesData.data["external_style_attributes"]:
+ row = self.layout.row(align=True)
+ row.label(text=attribute["name"])
+ row.label(text=attribute["value"])
+
+
class BIM_UL_styles(UIList):
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
if item:
@@ -151,3 +219,66 @@ class BIM_UL_styles(UIList):
row2 = row.row()
row2.alignment = "RIGHT"
row2.label(text=str(item.total_elements))
+
+
+class BIM_PT_STYLE_GRAPH(Panel):
+ bl_idname = "BIM_PT_style_graph"
+ bl_space_type = "NODE_EDITOR"
+ bl_label = "IFC Style Graph Settings"
+ bl_region_type = "UI"
+ bl_category = "BBIM"
+
+ @classmethod
+ def poll(cls, context):
+ return getattr(context, "material", None)
+
+ def draw(self, context):
+ layout = self.layout
+ props = context.active_object.active_material.BIMStyleProperties
+
+ draw_style_ui(self, context)
+ layout.separator()
+ box = layout.box()
+ box.label(text="Creating shader from this panel")
+ box.label(text="ensures that shader is")
+ box.label(text="GLTF compatible")
+ box.label(text="and therefore will be ")
+ box.label(text="stored in IFC safely.")
+ layout.separator()
+
+ layout.prop(props, "update_graph", text="Graph Auto Update")
+ layout.label(text="Reflectance Method:")
+ layout.prop(props, "reflectance_method", text="")
+ layout.prop(props, "surface_color")
+ layout.prop(props, "transparency")
+
+ if not (props.reflectance_method == "PHYSICAL" and props.diffuse_path) and not (
+ props.reflectance_method == "FLAT" and props.emissive_path
+ ):
+ prop_name = "Emissive Color" if props.reflectance_method == "FLAT" else "Diffuse Color"
+ layout.prop(props, "diffuse_color", text=prop_name)
+
+ if props.reflectance_method == "PHYSICAL" and not props.metallic_roughness_path:
+ layout.prop(props, "metallic")
+
+ if props.reflectance_method not in ("PHYSICAL", "FLAT", "NOTDEFINED") or (
+ props.reflectance_method == "PHYSICAL" and not props.metallic_roughness_path
+ ):
+ layout.prop(props, "roughness")
+
+ layout.label(text="Texture Maps:")
+
+ def add_texture_path(path_name):
+ row = layout.row(align=True)
+ row.prop(props, path_name)
+ op = row.operator("bim.clear_texture_map_path", text="", icon="X")
+ op.texture_map_prop = path_name
+
+ if props.reflectance_method == "PHYSICAL":
+ add_texture_path("diffuse_path")
+ add_texture_path("emissive_path")
+ add_texture_path("normal_path")
+ add_texture_path("metallic_roughness_path")
+
+ if props.reflectance_method == "FLAT":
+ add_texture_path("emissive_path")
diff --git a/src/blenderbim/blenderbim/bim/module/system/operator.py b/src/blenderbim/blenderbim/bim/module/system/operator.py
index 9b9165e97d..f421f77625 100644
--- a/src/blenderbim/blenderbim/bim/module/system/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/system/operator.py
@@ -140,7 +140,7 @@ class ShowPorts(bpy.types.Operator, Operator):
bl_options = {"REGISTER", "UNDO"}
def _execute(self, context):
- core.show_ports(tool.Ifc, tool.System, element=tool.Ifc.get_entity(context.active_object))
+ core.show_ports(tool.Ifc, tool.System, tool.Spatial, element=tool.Ifc.get_entity(context.active_object))
class HidePorts(bpy.types.Operator, Operator):
diff --git a/src/blenderbim/blenderbim/bim/module/type/operator.py b/src/blenderbim/blenderbim/bim/module/type/operator.py
index b7f825d10f..dffd55a617 100644
--- a/src/blenderbim/blenderbim/bim/module/type/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/type/operator.py
@@ -141,14 +141,10 @@ class SelectType(bpy.types.Operator):
def execute(self, context):
element = tool.Ifc.get().by_id(self.relating_type)
+ tool.Spatial.select_products([element])
obj = tool.Ifc.get_object(element)
if obj:
- if obj in context.selectable_objects:
- tool.Blender.select_and_activate_single_object(context, obj)
- else:
- self.report({"INFO"}, "Type object can't be selected : It may be hidden or in an excluded collection.")
- context.scene.BIMModelProperties.ifc_class = element.is_a()
- context.scene.BIMModelProperties.relating_type_id = str(self.relating_type)
+ context.view_layer.objects.active = obj
return {"FINISHED"}
@@ -333,8 +329,8 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator):
tool.Collector,
tool.Root,
obj=obj,
- predefined_type=predefined_type,
- ifc_class="IfcWindowType",
+ predefined_type=predefined_type if tool.Ifc.get_schema() != "IFC2X3" else None,
+ ifc_class="IfcWindowType" if tool.Ifc.get_schema() != "IFC2X3" else "IfcWindowStyle",
should_add_representation=False,
)
bpy.ops.object.select_all(action="DESELECT")
@@ -351,8 +347,8 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator):
tool.Collector,
tool.Root,
obj=obj,
- predefined_type=predefined_type,
- ifc_class="IfcDoorType",
+ predefined_type=predefined_type if tool.Ifc.get_schema() != "IFC2X3" else None,
+ ifc_class="IfcDoorType" if tool.Ifc.get_schema() != "IFC2X3" else "IfcDoorStyle",
should_add_representation=False,
)
bpy.ops.object.select_all(action="DESELECT")
diff --git a/src/blenderbim/blenderbim/bim/module/void/operator.py b/src/blenderbim/blenderbim/bim/module/void/operator.py
index 7cd620d754..b3b914b256 100644
--- a/src/blenderbim/blenderbim/bim/module/void/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/void/operator.py
@@ -29,6 +29,14 @@ class AddOpening(bpy.types.Operator, tool.Ifc.Operator):
bl_idname = "bim.add_opening"
bl_label = "Add Opening"
bl_options = {"REGISTER", "UNDO"}
+ bl_description = "Adds an opening to an element.\n" \
+ "Need to select two elements, order of selection is not important"
+
+ @classmethod
+ def poll(cls, context):
+ if len(context.selected_objects) != 2:
+ cls.poll_message_set("Select two elements to add an opening")
+ return True
def _execute(self, context):
props = context.scene.BIMModelProperties
diff --git a/src/blenderbim/blenderbim/bim/operator.py b/src/blenderbim/blenderbim/bim/operator.py
index f81124a7be..9b5cd4c3c5 100644
--- a/src/blenderbim/blenderbim/bim/operator.py
+++ b/src/blenderbim/blenderbim/bim/operator.py
@@ -94,10 +94,11 @@ class SelectIfcFile(bpy.types.Operator, IFCFileSelector):
bl_description = "Select a different IFC file"
filepath: bpy.props.StringProperty(subtype="FILE_PATH")
filter_glob: bpy.props.StringProperty(default="*.ifc;*.ifczip;*.ifcxml", options={"HIDDEN"})
+ use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=False)
def execute(self, context):
if self.is_existing_ifc_file():
- context.scene.BIMProperties.ifc_file = self.filepath
+ context.scene.BIMProperties.ifc_file = self.get_filepath()
return {"FINISHED"}
def invoke(self, context, event):
@@ -105,7 +106,7 @@ class SelectIfcFile(bpy.types.Operator, IFCFileSelector):
return {"RUNNING_MODAL"}
-class ReloadSelectedIfcFile(bpy.types.Operator, IFCFileSelector):
+class ReloadSelectedIfcFile(bpy.types.Operator):
bl_idname = "bim.reload_selected_ifc_file"
bl_label = "Reload selected IFC File"
bl_options = {"REGISTER", "UNDO"}
@@ -113,9 +114,12 @@ class ReloadSelectedIfcFile(bpy.types.Operator, IFCFileSelector):
filepath: bpy.props.StringProperty(subtype="FILE_PATH")
def execute(self, context):
- self.filepath = context.scene.BIMProperties.ifc_file
- if self.is_existing_ifc_file():
- context.scene.BIMProperties.ifc_file = context.scene.BIMProperties.ifc_file
+ filepath = context.scene.BIMProperties.ifc_file
+ valid_file = os.path.exists(filepath) and "ifc" in os.path.splitext(filepath)[1].lower()
+ if not valid_file:
+ self.report({"ERROR"}, f"Couldn't find .ifc file by the path '{filepath}'")
+ return {"ERROR"}
+ context.scene.BIMProperties.ifc_file = context.scene.BIMProperties.ifc_file
return {"FINISHED"}
@@ -161,6 +165,7 @@ class FileAssociate(bpy.types.Operator):
def poll(cls, context):
if platform.system() == "Linux":
return True
+ cls.poll_message_set("Option available only on Linux.")
# TODO Windows and Darwin
# https://stackoverflow.com/questions/1082889/how-to-change-filetype-association-in-the-registry
return False
@@ -235,6 +240,7 @@ class FileUnassociate(bpy.types.Operator):
def poll(cls, context):
if platform.system() == "Linux":
return True
+ cls.poll_message_set("Option available only on Linux.")
return False
def execute(self, context):
@@ -487,7 +493,7 @@ class BIM_OT_add_section_plane(bpy.types.Operator):
continue
material.blend_method = "HASHED"
material.shadow_method = "HASHED"
- material_output = self.get_node(material.node_tree.nodes, "OUTPUT_MATERIAL")
+ material_output = tool.Blender.get_material_node(material, "OUTPUT_MATERIAL", {"is_active_output": True})
if not material_output:
continue
from_socket = material_output.inputs[0].links[0].from_socket
@@ -497,11 +503,6 @@ class BIM_OT_add_section_plane(bpy.types.Operator):
material.node_tree.links.new(from_socket, section_override.inputs[0])
material.node_tree.links.new(section_override.outputs[0], material_output.inputs[0])
- def get_node(self, nodes, node_type):
- for node in nodes:
- if node.type == node_type:
- return node
-
class BIM_OT_remove_section_plane(bpy.types.Operator):
"""Remove selected section plane. No effect if executed on a regular object"""
diff --git a/src/blenderbim/blenderbim/bim/prop.py b/src/blenderbim/blenderbim/bim/prop.py
index 3aa001bac4..08e2c7d059 100644
--- a/src/blenderbim/blenderbim/bim/prop.py
+++ b/src/blenderbim/blenderbim/bim/prop.py
@@ -233,9 +233,21 @@ def set_lenght_value(self, value):
self.float_value = value / si_conversion
+def get_display_name(self):
+ name = self.name
+ if not self.special_type or self.special_type == "LENGTH":
+ return name
+
+ unit_type = f"{self.special_type}UNIT"
+ project_unit = ifcopenshell.util.unit.get_project_unit(tool.Ifc.get(), unit_type)
+ unit_symbol = ifcopenshell.util.unit.get_unit_symbol(project_unit)
+ return f"{name}, {unit_symbol}"
+
+
class Attribute(PropertyGroup):
tooltip = "`Right Click > IFC Description` to read the attribute description and online documentation"
name: StringProperty(name="Name")
+ display_name: StringProperty(name="Display Name", get=get_display_name)
description: StringProperty(name="Description")
ifc_class: StringProperty(name="Ifc Class")
data_type: StringProperty(name="Data Type")
diff --git a/src/blenderbim/blenderbim/bim/ui.py b/src/blenderbim/blenderbim/bim/ui.py
index 2ff02593d8..df9c0940b8 100644
--- a/src/blenderbim/blenderbim/bim/ui.py
+++ b/src/blenderbim/blenderbim/bim/ui.py
@@ -39,14 +39,23 @@ class IFCFileSelector:
filepath = self.filepath
return os.path.exists(filepath) and "ifc" in os.path.splitext(filepath)[1].lower()
+ def get_filepath(self):
+ """get filepath taking into account relative paths"""
+ if self.use_relative_path:
+ filepath = os.path.relpath(self.filepath, bpy.path.abspath("//"))
+ else:
+ filepath = self.filepath
+ return filepath
+
def draw(self, context):
# Access filepath & Directory https://blender.stackexchange.com/a/207665
params = context.space_data.params
# Decode byte string https://stackoverflow.com/a/47737082/
directory = Path(params.directory.decode("utf-8"))
filepath = os.path.join(directory, params.filename)
+ layout = self.layout
if self.is_existing_ifc_file(filepath):
- box = self.layout.box()
+ box = layout.box()
box.label(text="IFC Header Specifications", icon="INFO")
header_data = IfcHeaderExtractor(filepath).extract()
for key, value in header_data.items():
@@ -65,6 +74,13 @@ class IFCFileSelector:
op.outfile = filepath[0:-4] + "-IFC4.ifc"
op.schema = "IFC4"
+ if bpy.data.is_saved:
+ layout.prop(self, "use_relative_path")
+ else:
+ self.use_relative_path = False
+ layout.label(text="Save the .blend file first ")
+ layout.label(text="to use relative paths for .ifc.")
+
class BIM_PT_section_plane(Panel):
bl_label = "Temporary Section Cutaways"
@@ -198,6 +214,8 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences):
row = layout.row()
row.prop(context.scene.BIMProjectProperties, "should_disable_undo_on_save")
+ row = layout.row()
+ row.prop(context.scene.BIMProjectProperties, "should_stream")
row = layout.row()
row.prop(context.scene.BIMModelProperties, "occurrence_name_style")
diff --git a/src/blenderbim/blenderbim/core/cost.py b/src/blenderbim/blenderbim/core/cost.py
index 6d1d2e9cd6..e0afbe999e 100644
--- a/src/blenderbim/blenderbim/core/cost.py
+++ b/src/blenderbim/blenderbim/core/cost.py
@@ -59,9 +59,10 @@ def contract_cost_items(cost):
cost.load_cost_schedule_tree()
-def remove_cost_item(ifc, cost, cost_item):
+def remove_cost_item(ifc, cost, cost_item_id):
+ cost_item = ifc.get().by_id(cost_item_id)
ifc.run("cost.remove_cost_item", cost_item=cost_item)
- cost.clean_up_cost_item_tree(cost_item)
+ cost.clean_up_cost_item_tree(cost_item_id)
cost.load_cost_schedule_tree()
@@ -236,9 +237,9 @@ def calculate_cost_item_resource_value(ifc, cost_item):
ifc.run("cost.calculate_cost_item_resource_value", cost_item=cost_item)
-def export_cost_schedules(cost, format, cost_schedule=None):
+def export_cost_schedules(cost, filepath, format, cost_schedule=None):
cost.play_sound()
- return cost.export_cost_schedules(format, cost_schedule)
+ return cost.export_cost_schedules(filepath, format, cost_schedule)
def clear_cost_item_assignments(ifc, cost, cost_item, related_object_type):
diff --git a/src/blenderbim/blenderbim/core/drawing.py b/src/blenderbim/blenderbim/core/drawing.py
index e75989b8e4..bce835dffb 100644
--- a/src/blenderbim/blenderbim/core/drawing.py
+++ b/src/blenderbim/blenderbim/core/drawing.py
@@ -318,7 +318,7 @@ def update_drawing_name(ifc, drawing_tool, drawing=None, name=None):
ifc.run("attribute.edit_attributes", product=group, attributes={"Name": name})
collection = drawing_tool.get_drawing_collection(drawing)
if collection:
- drawing_tool.set_drawing_collection_name(group, collection)
+ drawing_tool.set_drawing_collection_name(drawing, collection)
reference = drawing_tool.get_drawing_document(drawing)
information = drawing_tool.get_reference_document(reference)
diff --git a/src/blenderbim/blenderbim/core/ifcgit.py b/src/blenderbim/blenderbim/core/ifcgit.py
index e886d6b65b..c1a1472255 100644
--- a/src/blenderbim/blenderbim/core/ifcgit.py
+++ b/src/blenderbim/blenderbim/core/ifcgit.py
@@ -26,7 +26,7 @@ def discard_uncomitted(ifcgit, ifc):
ifcgit.load_project(path_ifc)
-def commit_changes(ifcgit, ifc, repo, context):
+def commit_changes(ifcgit, ifc, repo):
path_ifc = ifc.get_path()
ifcgit.git_commit(path_ifc)
@@ -42,11 +42,26 @@ def delete_tag(ifcgit, repo, tag_name):
ifcgit.delete_tag(repo, tag_name)
+def add_remote(ifcgit, repo):
+ ifcgit.add_remote(repo)
+
+
+def delete_remote(ifcgit, repo):
+ ifcgit.delete_remote(repo)
+
+
+def push(ifcgit, repo, remote_name, operator):
+ error_message = ifcgit.push(repo, remote_name, repo.active_branch.name)
+ if error_message:
+ operator.report({"ERROR"}, error_message)
+
+
def refresh_revision_list(ifcgit, repo, ifc):
- ifcgit.refresh_revision_list(ifc.get_path())
+ if repo.heads:
+ ifcgit.refresh_revision_list(ifc.get_path())
-def colourise_revision(ifcgit, context):
+def colourise_revision(ifcgit):
step_ids = ifcgit.get_revisions_step_ids()
if not step_ids:
diff --git a/src/blenderbim/blenderbim/core/material.py b/src/blenderbim/blenderbim/core/material.py
index ca0c872199..603f02ab75 100644
--- a/src/blenderbim/blenderbim/core/material.py
+++ b/src/blenderbim/blenderbim/core/material.py
@@ -70,13 +70,15 @@ def disable_editing_materials(material):
material.disable_editing_materials()
-def select_by_material(material_tool, material=None):
- material_tool.select_elements(material_tool.get_elements_by_material(material))
+def select_by_material(material_tool, spatial, material=None):
+ spatial.select_products(material_tool.get_elements_by_material(material))
+
def enable_editing_material(material_tool, material):
material_tool.load_material_attributes(material)
material_tool.enable_editing_material(material)
+
def edit_material(ifc, material_tool, material):
attributes = material_tool.get_material_attributes()
ifc.run("material.edit_material", material=material, attributes=attributes)
@@ -85,5 +87,51 @@ def edit_material(ifc, material_tool, material):
material_tool.import_material_definitions(material_type)
material_tool.enable_editing_materials()
+
def disable_editing_material(material_tool):
material_tool.disable_editing_material()
+
+
+def assign_material(ifc, material_tool, material_type, objects):
+ material_type = material_type or material_tool.get_active_object_material()
+ material = material_tool.get_active_material()
+ for obj in objects:
+ element = ifc.get_entity(obj)
+ if not element:
+ continue
+ ifc.run("material.assign_material", product=element, type=material_type, material=material)
+ assigned_material = material_tool.get_material(element)
+ if material_tool.is_a_material_set(assigned_material):
+ material_tool.add_material_to_set(material_set=assigned_material, material=material)
+
+
+def unassign_material(ifc, material_tool, objects):
+ for obj in objects:
+ element = ifc.get_entity(obj)
+ if element:
+ material = material_tool.get_material(element, should_inherit=False)
+ inherited_material = material_tool.get_material(element, should_inherit=True)
+ if material and "Usage" in material.is_a():
+ element_type = material_tool.get_type(element)
+ ifc.run("material.unassign_material", product=element_type)
+ elif not material and inherited_material:
+ element_type = material_tool.get_type(element)
+ ifc.run("material.unassign_material", product=element_type)
+ elif material:
+ ifc.run("material.unassign_material", product=element)
+
+
+def patch_non_parametric_mep_segment(ifc, material_tool, profile_tool, obj):
+ element = ifc.get_entity(obj)
+ if not element:
+ return
+ if not material_tool.is_a_flow_segment(element):
+ return
+ has_material_profile = material_tool.has_material_profile(element)
+ if has_material_profile:
+ return
+ representation_profile = profile_tool.get_profile(element)
+ if not representation_profile:
+ return
+ material_profile = material_tool.replace_material_with_material_profile(element=element)
+ ifc.run("material.assign_profile", material_profile=material_profile, profile=representation_profile)
diff --git a/src/blenderbim/blenderbim/core/spatial.py b/src/blenderbim/blenderbim/core/spatial.py
index 0bbbf614f4..fb75dd2671 100644
--- a/src/blenderbim/blenderbim/core/spatial.py
+++ b/src/blenderbim/blenderbim/core/spatial.py
@@ -115,3 +115,8 @@ def expand_container(spatial, container=None):
def delete_container(ifc, spatial, geometry, container=None):
geometry.delete_ifc_object(ifc.get_object(container))
spatial.load_container_manager()
+
+def select_decomposed_elements(spatial):
+ container = spatial.get_active_container()
+ if container:
+ spatial.select_products(spatial.get_decomposed_elements(container))
diff --git a/src/blenderbim/blenderbim/core/style.py b/src/blenderbim/blenderbim/core/style.py
index c08ba48d09..97ded3ef34 100644
--- a/src/blenderbim/blenderbim/core/style.py
+++ b/src/blenderbim/blenderbim/core/style.py
@@ -33,6 +33,17 @@ def add_style(ifc, style, obj=None):
return element
+def add_external_style(ifc, style, obj, attributes):
+ element = style.get_style(obj)
+ ifc.run(
+ "style.add_surface_style", style=element, ifc_class="IfcExternallyDefinedSurfaceStyle", attributes=attributes
+ )
+
+
+def update_external_style(ifc, style, external_style, attributes):
+ ifc.run("style.edit_surface_style", style=external_style, attributes=attributes)
+
+
def remove_style(ifc, material, style_tool, style=None):
obj = ifc.get_object(style)
ifc.unlink(obj=obj, element=style)
@@ -43,18 +54,32 @@ def remove_style(ifc, material, style_tool, style=None):
style_tool.import_presentation_styles(style_tool.get_active_style_type())
-def update_style_colours(ifc, style, obj=None):
+def update_style_colours(ifc, style, obj=None, verbose=False):
element = style.get_style(obj)
if style.can_support_rendering_style(obj):
rendering_style = style.get_surface_rendering_style(obj)
- attributes = style.get_surface_rendering_attributes(obj)
+ texture_style = style.get_texture_style(obj)
+ attributes = style.get_surface_rendering_attributes(obj, verbose)
if rendering_style:
ifc.run("style.edit_surface_style", style=rendering_style, attributes=attributes)
else:
ifc.run(
"style.add_surface_style", style=element, ifc_class="IfcSurfaceStyleRendering", attributes=attributes
)
+
+ # TODO: uvs?
+ textures = ifc.run("style.add_surface_textures", material=obj)
+ if not texture_style and textures:
+ ifc.run(
+ "style.add_surface_style",
+ style=element,
+ ifc_class="IfcSurfaceStyleWithTextures",
+ attributes={"Textures": textures},
+ )
+ elif texture_style:
+ # TODO: should we remove blender images and IFCIMAGETEXTURE here if they're not used by other objects?
+ ifc.run("style.edit_surface_style", style=texture_style, attributes={"Textures": textures})
else:
shading_style = style.get_surface_shading_style(obj)
attributes = style.get_surface_shading_attributes(obj)
@@ -95,16 +120,33 @@ def enable_editing_style(style, obj=None):
style.import_surface_attributes(style.get_style(obj), obj)
+def enable_editing_external_style(style, obj=None):
+ external_style = style.get_external_style(obj)
+ style.enable_editing_external_style(obj)
+ style.import_external_style_attributes(external_style, obj)
+
+
def disable_editing_style(style, obj=None):
style.disable_editing(obj)
+def disable_editing_external_style(style, obj=None):
+ style.disable_editing_external_style(obj)
+
+
def edit_style(ifc, style, obj=None):
attributes = style.export_surface_attributes(obj)
ifc.run("style.edit_presentation_style", style=style.get_style(obj), attributes=attributes)
style.disable_editing(obj)
+def edit_external_style(ifc, style, obj=None):
+ attributes = style.export_external_style_attributes(obj)
+ external_style = style.get_style_elements(obj)["IfcExternallyDefinedSurfaceStyle"]
+ update_external_style(ifc, style, external_style, attributes)
+ style.disable_editing_external_style(obj)
+
+
def load_styles(style, style_type=None):
style.import_presentation_styles(style_type)
style.enable_editing_styles()
@@ -114,5 +156,5 @@ def disable_editing_styles(style):
style.disable_editing_styles()
-def select_by_style(style_tool, style=None):
- style_tool.select_elements(style_tool.get_elements_by_style(style))
+def select_by_style(style_tool, spatial, style=None):
+ spatial.select_products(style_tool.get_elements_by_style(style))
diff --git a/src/blenderbim/blenderbim/core/system.py b/src/blenderbim/blenderbim/core/system.py
index b635521222..5afc2b0420 100644
--- a/src/blenderbim/blenderbim/core/system.py
+++ b/src/blenderbim/blenderbim/core/system.py
@@ -66,14 +66,14 @@ def select_system_products(system_tool, system=None):
system_tool.select_system_products(system)
-def show_ports(ifc, system, element=None):
+def show_ports(ifc, system, spatial, element=None):
obj = ifc.get_object(element)
if obj and ifc.is_moved(obj):
system.run_geometry_edit_object_placement(obj=obj)
ports = system.get_ports(element)
system.load_ports(element, ports)
- system.select_elements(ports)
+ spatial.select_products(ports)
def hide_ports(ifc, system, element=None):
diff --git a/src/blenderbim/blenderbim/core/tool.py b/src/blenderbim/blenderbim/core/tool.py
index 968646da52..44ba4d4d8a 100644
--- a/src/blenderbim/blenderbim/core/tool.py
+++ b/src/blenderbim/blenderbim/core/tool.py
@@ -165,7 +165,7 @@ class Cost:
def expand_cost_item_rate(cls, cost_item): pass
def expand_cost_item(cls, cost_item): pass
def expand_cost_items(cls): pass
- def export_cost_schedules(cls, format, cost_schedule): pass
+ def export_cost_schedules(cls, filepath, format, cost_schedule): pass
def format_unit(cls, unit): pass
def get_active_cost_item(cls): pass
def get_active_cost_schedule(cls): pass
@@ -311,7 +311,7 @@ class Drawing:
def run_drawing_activate_model(cls): pass
def run_root_assign_class(cls, obj=None, ifc_class=None, predefined_type=None, should_add_representation=True, context=None, ifc_representation_class=None): pass
def select_assigned_product(cls, drawing): pass
- def set_drawing_collection_name(cls, group, collection): pass
+ def set_drawing_collection_name(cls, drawing, collection): pass
def set_name(cls, element, name): pass
def setup_annotation_object(cls, obj, object_type): pass
def setup_shading_styles_path(cls, resource_path): pass
@@ -433,21 +433,28 @@ class Loader:
@interface
class Material:
def add_default_material_object(cls): pass
+ def add_material_to_set(cls, material_set, material): pass
def delete_object(cls, obj): pass
def disable_editing_material(cls): pass
def disable_editing_materials(cls): pass
def enable_editing_material(cls, material): pass
def enable_editing_materials(cls): pass
def get_active_material_type(cls): pass
- def get_active_material_type(cls): pass
+ def get_active_material(cls): pass
+ def get_active_object_material(cls, obj): pass
def get_elements_by_material(cls, material): pass
def get_material_attributes(cls): pass
+ def get_material(cls, element, should_inherit): pass
def get_name(cls, obj): pass
+ def get_type(cls, element): pass
+ def has_material_profile(cls, element): pass
def import_material_definitions(cls, material_type): pass
+ def is_a_flow_segment(cls, element): pass
+ def is_a_material_set(cls, material): pass
def is_editing_materials(cls): pass
def is_material_used_in_sets(cls, material): pass
def load_material_attributes(cls, material): pass
- def select_elements(cls, elements): pass
+ def replace_material_with_material_profile(cls, element): pass
@interface
@@ -547,6 +554,8 @@ class Project:
@interface
class Profile:
def draw_image_for_ifc_profile(cls, draw, profile, size): pass
+ def is_editing_profile(cls): pass
+ def get_profile(cls, element): pass
@interface
@@ -806,8 +815,11 @@ class Style:
def get_elements_by_style(cls, style): pass
def get_name(cls, obj): pass
def get_style(cls, obj): pass
- def get_surface_rendering_attributes(cls, obj): pass
+ def get_style_elements(cls, blender_material): pass
+ def get_surface_rendering_attributes(cls, obj, verbose=True): pass
def get_surface_rendering_style(cls, obj): pass
+ def get_texture_style(cls, obj): pass
+ def get_external_style(cls, obj): pass
def get_surface_shading_attributes(cls, obj): pass
def get_surface_shading_style(cls, obj): pass
def get_surface_texture_style(cls, obj): pass
@@ -816,7 +828,6 @@ class Style:
def import_surface_attributes(cls, style, obj): pass
def is_editing_styles(cls): pass
def record_shading(cls, obj): pass
- def select_elements(cls, elements): pass
@interface
@@ -839,7 +850,6 @@ class System:
def load_ports(cls, element, ports): pass
def run_geometry_edit_object_placement(cls, obj=None): pass
def run_root_assign_class(cls, obj=None, ifc_class=None, predefined_type=None, should_add_representation=True, context=None, ifc_representation_class=None): pass
- def select_elements(cls, elements): pass
def select_system_products(cls, system): pass
def set_active_system(cls, system): pass
diff --git a/src/blenderbim/blenderbim/core/type.py b/src/blenderbim/blenderbim/core/type.py
index 6368cb1302..f4660895f6 100644
--- a/src/blenderbim/blenderbim/core/type.py
+++ b/src/blenderbim/blenderbim/core/type.py
@@ -34,8 +34,8 @@ def assign_type(ifc, type_tool, element=None, type=None):
def purge_unused_types(ifc, type):
for element_type in type.get_model_types():
if not type.get_type_occurrences(element_type):
- ifc.run("root.remove_product", product=element_type)
obj = ifc.get_object(element_type)
+ ifc.run("root.remove_product", product=element_type)
if obj:
ifc.unlink(obj=obj)
type.remove_object(obj)
diff --git a/src/blenderbim/blenderbim/tool/blender.py b/src/blenderbim/blenderbim/tool/blender.py
index 63ec2b6d01..1648c4bca0 100644
--- a/src/blenderbim/blenderbim/tool/blender.py
+++ b/src/blenderbim/blenderbim/tool/blender.py
@@ -20,6 +20,19 @@ import bpy
import ifcopenshell.api
import blenderbim.tool as tool
from mathutils import Vector
+from pathlib import Path
+
+
+VIEWPORT_ATTRIBUTES = [
+ "view_matrix",
+ "view_distance",
+ "view_perspective",
+ "use_box_clip",
+ "use_clip_planes",
+ "is_perspective",
+ "show_sync_view",
+ "clip_planes",
+]
class Blender:
@@ -94,6 +107,24 @@ class Blender:
return False
return False
+ @classmethod
+ def show_error_message(cls, text):
+ """useful for showing error messages outside blender operators"""
+
+ def error(self, context):
+ self.layout.label(text=text)
+
+ bpy.context.window_manager.popup_menu(error, title="Error", icon="ERROR")
+
+ @classmethod
+ def get_blender_prop_default_value(cls, props, prop_name):
+ prop_bl_rna = props.bl_rna.properties[prop_name]
+ if getattr(prop_bl_rna, "array_length", 0) > 0:
+ prop_value = prop_bl_rna.default_array
+ else:
+ prop_value = prop_bl_rna.default
+ return prop_value
+
@classmethod
def get_viewport_context(cls):
"""Get viewport area context for context overriding.
@@ -108,11 +139,70 @@ class Blender:
return context_override
@classmethod
- def update_viewport(cls):
- # if it stops working in future Blender versions
- # there is an alternative:
- # bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1)
+ def get_viewport_position(cls):
+ region_3d = cls.get_viewport_context()["area"].spaces[0].region_3d
+ copy_if_possible = lambda x: x.copy() if hasattr(x, "copy") else x
+ viewport_data = {attr: copy_if_possible(getattr(region_3d, attr)) for attr in VIEWPORT_ATTRIBUTES}
+ return viewport_data
+ @classmethod
+ def set_viewport_position(cls, data):
+ region_3d = cls.get_viewport_context()["area"].spaces[0].region_3d
+ for attr in VIEWPORT_ATTRIBUTES:
+ setattr(region_3d, attr, data[attr])
+
+ @classmethod
+ def get_shader_editor_context(cls):
+ for screen in bpy.data.screens:
+ for area in screen.areas:
+ if area.type == "NODE_EDITOR":
+ for space in area.spaces:
+ if space.tree_type == "ShaderNodeTree":
+ context_override = {"area": area, "space": space, "screen": screen}
+ return context_override
+
+ @classmethod
+ def copy_node_graph(cls, material_to, material_from):
+ temp_override = cls.get_shader_editor_context()
+ shader_editor = temp_override["space"]
+
+ # remove all nodes from the current material
+ for n in material_to.node_tree.nodes[:]:
+ material_to.node_tree.nodes.remove(n)
+
+ previous_pin_setting = shader_editor.pin
+ # required to be able to change material to something else
+ shader_editor.pin = True
+ shader_editor.node_tree = material_from.node_tree
+
+ # select all nodes and copy them to clipboard
+ for node in material_from.node_tree.nodes:
+ node.select = True
+ bpy.ops.node.clipboard_copy(temp_override)
+
+ # back to original material
+ shader_editor.node_tree = material_to.node_tree
+ bpy.ops.node.clipboard_paste(temp_override, offset=(0, 0))
+
+ # restore shader editor settings
+ shader_editor.pin = previous_pin_setting
+
+ @classmethod
+ def get_material_node(cls, blender_material, node_type, kwargs={}):
+ """returns first node from the `blender_material` shader graph with type `node_type`"""
+ if not blender_material.use_nodes:
+ return
+ nodes = blender_material.node_tree.nodes
+ for node in nodes:
+ if node.type == node_type and all(getattr(node, a) == kwargs[a] for a in kwargs):
+ return node
+
+ @classmethod
+ def update_screen(cls):
+ bpy.ops.wm.redraw_timer(type="DRAW_WIN_SWAP", iterations=1)
+
+ @classmethod
+ def update_viewport(cls):
tool.Blender.get_viewport_context()["area"].tag_redraw()
@classmethod
@@ -215,6 +305,20 @@ class Blender:
context.view_layer.objects.active = active_object
active_object.select_set(True)
+ @classmethod
+ def append_data_block(cls, filepath, data_block_type, name, link=False, relative=False):
+ if Path(filepath) == Path(bpy.data.filepath):
+ data_block = getattr(bpy.data, data_block_type).get(name, None)
+ if not data_block:
+ return {"data_block": None, "msg": f"Data-block {data_block_type}/{name} not found in {filepath}"}
+ return {"data_block": data_block.copy(), "msg": ""}
+
+ with bpy.data.libraries.load(filepath, link=link, relative=relative) as (data_from, data_to):
+ if name not in getattr(data_from, data_block_type):
+ return {"data_block": None, "msg": f"Data-block {data_block_type}/{name} not found in {filepath}"}
+ getattr(data_to, data_block_type).append(name)
+ return {"data_block": getattr(data_to, data_block_type)[0], "msg": ""}
+
## BMESH UTILS ##
@classmethod
def apply_bmesh(cls, mesh, bm, obj=None):
diff --git a/src/blenderbim/blenderbim/tool/collector.py b/src/blenderbim/blenderbim/tool/collector.py
index ef8ef0556f..7e5c418176 100644
--- a/src/blenderbim/blenderbim/tool/collector.py
+++ b/src/blenderbim/blenderbim/tool/collector.py
@@ -143,11 +143,8 @@ class Collector(blenderbim.core.tool.Collector):
return axes_col[0]
return bpy.data.collections.new(axes)
- if element.is_a("IfcAnnotation"):
- for rel in element.HasAssignments or []:
- if rel.is_a("IfcRelAssignsToGroup") and rel.RelatingGroup.ObjectType == "DRAWING":
- name = "IfcGroup/" + rel.RelatingGroup.Name
- return bpy.data.collections.get(name) or bpy.data.collections.new(name)
+ if element.is_a("IfcAnnotation") and element.ObjectType == "DRAWING":
+ return cls._create_own_collection(obj)
if element.is_a("IfcStructuralMember"):
return bpy.data.collections.get("Members") or bpy.data.collections.new("Members")
@@ -178,12 +175,18 @@ class Collector(blenderbim.core.tool.Collector):
axes = "WAxes"
grid_obj = tool.Ifc.get_object(grid)
if grid_obj:
- return bpy.data.collections.get(grid_obj.name)
+ return grid_obj.BIMObjectProperties.collection
if element.is_a("IfcAnnotation"):
+ if element.ObjectType == "DRAWING":
+ return cls._create_project_child_collection("Views")
for rel in element.HasAssignments or []:
if rel.is_a("IfcRelAssignsToGroup") and rel.RelatingGroup.ObjectType == "DRAWING":
- return cls._create_project_child_collection("Views")
+ for related_object in rel.RelatedObjects:
+ if related_object.is_a("IfcAnnotation") and related_object.ObjectType == "DRAWING":
+ drawing_obj = tool.Ifc.get_object(related_object)
+ if drawing_obj:
+ return drawing_obj.BIMObjectProperties.collection
if element.is_a("IfcStructuralItem"):
return cls._create_project_child_collection("StructuralItems")
diff --git a/src/blenderbim/blenderbim/tool/cost.py b/src/blenderbim/blenderbim/tool/cost.py
index 328d41575f..aef65f093c 100644
--- a/src/blenderbim/blenderbim/tool/cost.py
+++ b/src/blenderbim/blenderbim/tool/cost.py
@@ -96,11 +96,11 @@ class Cost(blenderbim.core.tool.Cost):
props.contracted_cost_items = json.dumps(cls.contracted_cost_items)
@classmethod
- def contract_cost_item(cls, cost_item):
+ def contract_cost_item(cls, cost_item_id):
props = bpy.context.scene.BIMCostProperties
if not hasattr(cls, "contracted_cost_items"):
cls.contracted_cost_items = json.loads(props.contracted_cost_items)
- cls.contracted_cost_items.append(cost_item.id())
+ cls.contracted_cost_items.append(cost_item_id)
props.contracted_cost_items = json.dumps(cls.contracted_cost_items)
@classmethod
@@ -114,11 +114,11 @@ class Cost(blenderbim.core.tool.Cost):
props.contracted_cost_items = json.dumps(cls.contracted_cost_items)
@classmethod
- def clean_up_cost_item_tree(cls, cost_item):
+ def clean_up_cost_item_tree(cls, cost_item_id):
props = bpy.context.scene.BIMCostProperties
if not hasattr(cls, "contracted_cost_items"):
cls.contracted_cost_items = json.loads(props.contracted_cost_items)
- if props.active_cost_item_id == cost_item.id():
+ if props.active_cost_item_id == cost_item_id:
props.active_cost_item_id = 0
if props.active_cost_item_index in cls.contracted_cost_items:
cls.contracted_cost_items.remove(props.active_cost_item_index)
@@ -505,11 +505,15 @@ class Cost(blenderbim.core.tool.Cost):
props.is_cost_update_enabled = True
@classmethod
- def export_cost_schedules(cls, format=None, cost_schedule=None):
+ def export_cost_schedules(cls, filepath, format=None, cost_schedule=None):
import subprocess
import os
import sys
- path = os.path.join(bpy.context.scene.BIMProperties.data_dir, "cost_schedules")
+ if filepath:
+ path=filepath
+ else:
+ path = os.path.join(bpy.context.scene.BIMProperties.data_dir, "build", "cost_schedules")
+
if not os.path.exists(path):
os.makedirs(path)
if format == "CSV":
diff --git a/src/blenderbim/blenderbim/tool/drawing.py b/src/blenderbim/blenderbim/tool/drawing.py
index c237b8baec..acb8d2c68b 100644
--- a/src/blenderbim/blenderbim/tool/drawing.py
+++ b/src/blenderbim/blenderbim/tool/drawing.py
@@ -364,7 +364,7 @@ class Drawing(blenderbim.core.tool.Drawing):
def get_drawing_collection(cls, drawing):
obj = tool.Ifc.get_object(drawing)
if obj:
- return obj.users_collection[0]
+ return obj.BIMObjectProperties.collection
@classmethod
def get_drawing_group(cls, drawing):
@@ -759,8 +759,8 @@ class Drawing(blenderbim.core.tool.Drawing):
)
@classmethod
- def set_drawing_collection_name(cls, group, collection):
- collection.name = f"IfcGroup/{group.Name}"
+ def set_drawing_collection_name(cls, drawing, collection):
+ collection.name = tool.Loader.get_name(drawing)
@classmethod
def set_name(cls, element, name):
@@ -1486,8 +1486,8 @@ class Drawing(blenderbim.core.tool.Drawing):
project_collection.children["Views"].children[collection.name].hide_viewport = True
bpy.data.collections.get(collection.name).hide_render = True
- project_collection.children["Views"].children[camera.users_collection[0].name].hide_viewport = False
- bpy.data.collections.get(camera.users_collection[0].name).hide_render = False
+ project_collection.children["Views"].children[camera.BIMObjectProperties.collection.name].hide_viewport = False
+ camera.BIMObjectProperties.collection.hide_render = False
tool.Spatial.set_active_object(camera)
# Sync viewport objects visibility with selectors from EPset_Drawing/Include and /Exclude
@@ -1498,12 +1498,11 @@ class Drawing(blenderbim.core.tool.Drawing):
bpy.ops.object.hide_view_clear()
filtered_elements = cls.get_drawing_elements(drawing) | cls.get_drawing_spaces(drawing)
- hidden_objs = [o for o in bpy.context.visible_objects if tool.Ifc.get_entity(o) not in filtered_elements]
-
- for hidden_obj in hidden_objs:
- if bpy.context.view_layer.objects.get(hidden_obj.name):
- hidden_obj.hide_set(True)
- hidden_obj.hide_render = True
+ for visible_obj in bpy.context.visible_objects:
+ hide = tool.Ifc.get_entity(visible_obj) not in filtered_elements
+ if bpy.context.view_layer.objects.get(visible_obj.name):
+ visible_obj.hide_set(hide)
+ visible_obj.hide_render = hide
subcontexts = []
target_view = cls.get_drawing_target_view(drawing)
diff --git a/src/blenderbim/blenderbim/tool/geometry.py b/src/blenderbim/blenderbim/tool/geometry.py
index 96676c1117..5e13ab5dd2 100644
--- a/src/blenderbim/blenderbim/tool/geometry.py
+++ b/src/blenderbim/blenderbim/tool/geometry.py
@@ -356,6 +356,16 @@ class Geometry(blenderbim.core.tool.Geometry):
return True
return False
+ @classmethod
+ def is_profile_based(cls, data):
+ return data.BIMMeshProperties.subshape_type == "PROFILE"
+
+ @classmethod
+ def is_swept_profile(cls, representation):
+ return ifcopenshell.util.representation.resolve_representation(representation).RepresentationType in (
+ "SweptSolid",
+ )
+
@classmethod
def is_type_product(cls, element):
return element.is_a("IfcTypeProduct")
diff --git a/src/blenderbim/blenderbim/tool/ifcgit.py b/src/blenderbim/blenderbim/tool/ifcgit.py
index f50f2e18ab..33f2fc39e3 100644
--- a/src/blenderbim/blenderbim/tool/ifcgit.py
+++ b/src/blenderbim/blenderbim/tool/ifcgit.py
@@ -1,6 +1,5 @@
import os
import re
-import time
# allows git import even if git executable isn't found
os.environ["GIT_PYTHON_REFRESH"] = "quiet"
@@ -103,6 +102,30 @@ class IfcGit:
if tag_name in repo.tags:
repo.delete_tag(tag_name)
+ @classmethod
+ def add_remote(cls, repo):
+ props = bpy.context.scene.IfcGitProperties
+ repo.create_remote(name=props.remote_name, url=props.remote_url)
+ props.remote_name = ""
+ props.remote_url = ""
+
+ @classmethod
+ def delete_remote(cls, repo):
+ props = bpy.context.scene.IfcGitProperties
+ remote_name = props.select_remote
+ if remote_name in repo.remotes:
+ repo.delete_remote(remote_name)
+ if repo.remotes:
+ props.select_remote = repo.remotes[0].name
+
+ @classmethod
+ def push(cls, repo, remote_name, branch_name):
+ remote = repo.remotes[remote_name]
+ try:
+ remote.push(tags=True, refspec=branch_name).raise_if_error()
+ except git.exc.GitCommandError as exc:
+ return exc.stderr
+
@classmethod
def create_new_branch(cls):
props = bpy.context.scene.IfcGitProperties
@@ -369,11 +392,15 @@ class IfcGit:
@classmethod
def config_ifcmerge(cls):
config_reader = IfcGitRepo.repo.config_reader()
+ config_writer = IfcGitRepo.repo.config_writer()
section = 'mergetool "ifcmerge"'
if not config_reader.has_section(section):
- config_writer = IfcGitRepo.repo.config_writer()
config_writer.set_value(section, "cmd", "ifcmerge $BASE $LOCAL $REMOTE $MERGED")
config_writer.set_value(section, "trustExitCode", True)
+ section = 'mergetool "ifcmerge-forward"'
+ if not config_reader.has_section(section):
+ config_writer.set_value(section, "cmd", "ifcmerge $BASE $REMOTE $LOCAL $MERGED")
+ config_writer.set_value(section, "trustExitCode", True)
@classmethod
def config_info_attributes(cls, repo):
@@ -402,13 +429,19 @@ class IfcGit:
for branch in lookup[item.hexsha]:
if branch.name == props.display_branch:
# this is a branch!
+ if re.match("^(origin/)?(HEAD|main|master)$", branch.name):
+ # preserve remote IDs in origin/main or main
+ mergetool = "ifcmerge"
+ else:
+ # rewrite remote IDs
+ mergetool = "ifcmerge-forward"
try:
# NOTE this is calling the git binary in a subprocess
repo.git.merge(branch)
except git.exc.GitCommandError:
# merge is expected to fail, run ifcmerge
try:
- repo.git.mergetool(tool="ifcmerge")
+ repo.git.mergetool(tool=mergetool)
except git.exc.GitCommandError as exc:
message = re.sub("( stderr: '|')", "", exc.stderr)
# ifcmerge failed, rollback
@@ -416,23 +449,16 @@ class IfcGit:
operator.report({"ERROR"}, "IFC Merge failed:" + message)
return False
+ else:
+ if os.name == "nt":
+ cls.dos2unix(path_ifc)
+ repo.index.add(path_ifc)
+ repo.git.commit("--no-edit")
except:
operator.report({"ERROR"}, "Unknown IFC Merge failure")
return False
- repo.index.add(path_ifc)
-
- message_summary = ""
- branch_commits = repo.iter_commits(rev=repo.active_branch.name + ".." + props.display_branch)
- for commit in branch_commits:
- message_summary += "\n\n" + commit.author.name + " <" + commit.author.email + ">\n"
- message_summary += time.strftime("%c", time.localtime(commit.committed_date)) + "\n"
- message_summary += commit.message
-
- props.commit_message = (
- "Merge branch '" + props.display_branch + "' into " + repo.active_branch.name + message_summary
- )
props.display_branch = repo.active_branch.name
cls.load_project(path_ifc)
diff --git a/src/blenderbim/blenderbim/tool/loader.py b/src/blenderbim/blenderbim/tool/loader.py
index 589751bbae..c5a810574b 100644
--- a/src/blenderbim/blenderbim/tool/loader.py
+++ b/src/blenderbim/blenderbim/tool/loader.py
@@ -21,6 +21,9 @@ import bpy
import ifcopenshell.util.element
import blenderbim.core.tool
import blenderbim.tool as tool
+import os
+from mathutils import Vector
+from pathlib import Path
# Progressively we'll refactor loading elements into Blender objects into this
@@ -28,6 +31,7 @@ import blenderbim.tool as tool
# partially load and unload objects for huge models, partial model editing, and
# supplementary objects (e.g. drawings, structural analysis models, etc).
+
class Loader(blenderbim.core.tool.Loader):
@classmethod
def get_mesh_name(cls, geometry):
@@ -52,3 +56,233 @@ class Loader(blenderbim.core.tool.Loader):
else:
# TODO: See #2002
mesh.BIMMeshProperties.ifc_definition_id = int(geometry.id.replace(",", ""))
+
+ @classmethod
+ def create_surface_style_shading(cls, blender_material, surface_style):
+ surface_style = cls.surface_style_to_dict(surface_style)
+ alpha = 1.0
+ # Transparency was added in IFC4
+ if transparency := surface_style.get("Transparency", None):
+ alpha = 1 - transparency
+ blender_material.diffuse_color = surface_style["SurfaceColour"][:3] + (alpha,)
+
+ @classmethod
+ def restart_material_node_tree(cls, blender_material):
+ nodes = blender_material.node_tree.nodes
+ links = blender_material.node_tree.links
+ for n in nodes[:]:
+ nodes.remove(n)
+ output = nodes.new("ShaderNodeOutputMaterial")
+ output.location = Vector((300, 300))
+ bsdf = nodes.new("ShaderNodeBsdfPrincipled")
+ bsdf.location = Vector((10, 300))
+ links.new(bsdf.outputs["BSDF"], output.inputs["Surface"])
+
+ @classmethod
+ def surface_style_to_dict(cls, surface_style):
+ if isinstance(surface_style, dict):
+ return surface_style
+ surface_style = surface_style.get_info()
+ color_to_tuple = lambda x: (x.Red, x.Green, x.Blue, 1)
+
+ if surface_style["SurfaceColour"]:
+ surface_style["SurfaceColour"] = color_to_tuple(surface_style["SurfaceColour"])
+
+ if surface_style.get("DiffuseColour", None) and surface_style["DiffuseColour"].is_a("IfcColourRgb"):
+ surface_style["DiffuseColour"] = ("IfcColourRgb", color_to_tuple(surface_style["DiffuseColour"]))
+
+ elif surface_style.get("DiffuseColour", None) and surface_style["DiffuseColour"].is_a("IfcNormalisedRatioMeasure"):
+ diffuse_color_value = surface_style["DiffuseColour"].wrappedValue
+ diffuse_color = [v * diffuse_color_value for v in surface_style["SurfaceColor"][:3]] + [1]
+ surface_style["DiffuseColour"] = ("IfcNormalisedRatioMeasure", diffuse_color)
+ else:
+ surface_style["DiffuseColour"] = None
+
+ if surface_style.get("SpecularColour", None) and surface_style["SpecularColour"].is_a("IfcNormalisedRatioMeasure"):
+ surface_style["SpecularColour"] = surface_style["SpecularColour"].wrappedValue
+ else:
+ surface_style["SpecularColour"] = None
+
+ if surface_style.get("SpecularHighlight", None) and surface_style["SpecularHighlight"].is_a("IfcSpecularRoughness"):
+ surface_style["SpecularHighlight"] = surface_style["SpecularHighlight"].wrappedValue
+ else:
+ surface_style["SpecularHighlight"] = None
+ return surface_style
+
+ @classmethod
+ def create_surface_style_rendering(cls, blender_material, surface_style):
+ surface_style = cls.surface_style_to_dict(surface_style)
+ cls.create_surface_style_shading(blender_material, surface_style)
+
+ reflectance_method = surface_style["ReflectanceMethod"]
+ if reflectance_method not in ("PHYSICAL", "NOTDEFINED", "FLAT"):
+ print(f'WARNING. Unsupported reflectance method "{reflectance_method}" on style {surface_style}')
+ return
+
+ if reflectance_method in ["PHYSICAL", "NOTDEFINED"]:
+ blender_material.use_nodes = True
+ cls.restart_material_node_tree(blender_material)
+ bsdf = tool.Blender.get_material_node(blender_material, "BSDF_PRINCIPLED")
+ if surface_style["DiffuseColour"]:
+ color_type, color_value = surface_style["DiffuseColour"]
+ if color_type == "IfcColourRgb":
+ bsdf.inputs["Base Color"].default_value = color_value
+ elif color_type == "IfcNormalisedRatioMeasure":
+ bsdf.inputs["Base Color"].default_value = color_value
+ if surface_style["SpecularColour"]:
+ bsdf.inputs["Metallic"].default_value = surface_style["SpecularColour"]
+ if surface_style["SpecularHighlight"]:
+ bsdf.inputs["Roughness"].default_value = surface_style["SpecularHighlight"]
+ if transparency := surface_style.get("Transparency", None):
+ bsdf.inputs["Alpha"].default_value = 1 - transparency
+ blender_material.blend_method = "BLEND"
+
+ elif reflectance_method == "FLAT":
+ blender_material.use_nodes = True
+ cls.restart_material_node_tree(blender_material)
+
+ output = tool.Blender.get_material_node(blender_material, "OUTPUT_MATERIAL")
+ bsdf = tool.Blender.get_material_node(blender_material, "BSDF_PRINCIPLED")
+
+ mix = blender_material.node_tree.nodes.new(type="ShaderNodeMixShader")
+ mix.location = bsdf.location
+ blender_material.node_tree.links.new(mix.outputs[0], output.inputs["Surface"])
+
+ blender_material.node_tree.nodes.remove(bsdf)
+
+ lightpath = blender_material.node_tree.nodes.new(type="ShaderNodeLightPath")
+ lightpath.location = mix.location - Vector((200, -200))
+ blender_material.node_tree.links.new(lightpath.outputs[0], mix.inputs[0])
+
+ bsdf = blender_material.node_tree.nodes.new(type="ShaderNodeBsdfTransparent")
+ bsdf.location = mix.location - Vector((200, 150))
+ blender_material.node_tree.links.new(bsdf.outputs[0], mix.inputs[1])
+
+ rgb = blender_material.node_tree.nodes.new(type="ShaderNodeRGB")
+ rgb.location = mix.location - Vector((200, 250))
+ blender_material.node_tree.links.new(rgb.outputs[0], mix.inputs[2])
+
+ if surface_style["DiffuseColour"]:
+ color_type, color_value = surface_style["DiffuseColour"]
+ if color_type == "IfcColourRgb":
+ rgb.outputs[0].default_value = color_value
+
+ @classmethod
+ def create_surface_style_with_textures(cls, blender_material, rendering_style, texture_style):
+ """supposed to be called after `create_surface_style_rendering`"""
+ if not isinstance(texture_style, list):
+ textures = [t.get_info() for t in texture_style.Textures]
+ else:
+ textures = texture_style
+ rendering_style = cls.surface_style_to_dict(rendering_style)
+
+ reflectance_method = rendering_style["ReflectanceMethod"]
+ if reflectance_method not in ("PHYSICAL", "NOTDEFINED", "FLAT"):
+ print(f'WARNING. Unsupported reflectance method "{reflectance_method}" on style {rendering_style}')
+ return
+
+ for texture in textures:
+ mode = texture.get("Mode", None)
+ node = None
+
+ if texture["type"] == "IfcImageTexture":
+ image_url = texture["URLReference"]
+ ifc_path = tool.Ifc.get_path()
+ if ifc_path:
+ image_url = bpy.path.abspath(image_url, start=Path(ifc_path).parent)
+
+ if not os.path.exists(image_url):
+ print(f"WARNING. Couldn't find texture by path {image_url}, it will be skipped.")
+ continue
+
+ if reflectance_method in ["PHYSICAL", "NOTDEFINED"]:
+ bsdf = tool.Blender.get_material_node(blender_material, "BSDF_PRINCIPLED")
+ if mode == "NORMAL":
+ # add normal map node
+ normalmap = blender_material.node_tree.nodes.new(type="ShaderNodeNormalMap")
+ normalmap.location = bsdf.location - Vector((200, 600))
+ blender_material.node_tree.links.new(normalmap.outputs[0], bsdf.inputs["Normal"])
+
+ # add normal map sampler
+ node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
+ node.location = normalmap.location - Vector((300, 0))
+ image = bpy.data.images.load(image_url)
+ image.colorspace_settings.name = "Non-Color"
+ node.image = image
+ blender_material.node_tree.links.new(node.outputs[0], normalmap.inputs["Color"])
+
+ elif mode == "EMISSIVE":
+ output = tool.Blender.get_material_node(blender_material, "OUTPUT_MATERIAL")
+
+ # add "Add Shader" node
+ add = blender_material.node_tree.nodes.new(type="ShaderNodeAddShader")
+ add.location = bsdf.location + Vector((200, 350))
+ blender_material.node_tree.links.new(bsdf.outputs[0], add.inputs[1])
+ blender_material.node_tree.links.new(add.outputs[0], output.inputs[0])
+
+ # add emssion shader node
+ emission = blender_material.node_tree.nodes.new(type="ShaderNodeEmission")
+ emission.location = add.location - Vector((200, 0))
+ blender_material.node_tree.links.new(emission.outputs[0], add.inputs[0])
+
+ # add emission texture sampler
+ node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
+ node.location = emission.location - Vector((350, 0))
+ image = bpy.data.images.load(image_url)
+ node.image = image
+ blender_material.node_tree.links.new(node.outputs[0], emission.inputs[0])
+
+ elif mode == "METALLICROUGHNESS":
+ separate = blender_material.node_tree.nodes.new(type="ShaderNodeSeparateRGB")
+ separate.location = bsdf.location - Vector((200, 300))
+ blender_material.node_tree.links.new(separate.outputs[1], bsdf.inputs["Roughness"])
+ blender_material.node_tree.links.new(separate.outputs[2], bsdf.inputs["Metallic"])
+
+ node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
+ node.location = separate.location - Vector((300, 0))
+ image = bpy.data.images.load(image_url)
+ image.colorspace_settings.name = "Non-Color"
+ node.image = image
+ blender_material.node_tree.links.new(node.outputs[0], separate.inputs[0])
+
+ elif mode == "OCCLUSION":
+ # TODO work out how to implement glTF settings here
+ # https://docs.blender.org/manual/en/dev/addons/import_export/scene_gltf2.html
+ pass
+
+ elif mode == "DIFFUSE":
+ node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
+ node.location = bsdf.location - Vector((400, 0))
+ image = bpy.data.images.load(image_url)
+ node.image = image
+ blender_material.node_tree.links.new(node.outputs[0], bsdf.inputs["Base Color"])
+ blender_material.node_tree.links.new(node.outputs[1], bsdf.inputs["Alpha"])
+ blender_material.blend_method = "BLEND"
+
+ elif reflectance_method == "FLAT":
+ bsdf = tool.Blender.get_material_node(blender_material, "MIX_SHADER")
+ if mode != "EMISSIVE":
+ continue
+
+ # remove RGB node from `create_surface_style_rendering`
+ prev_node = bsdf.inputs[2].links[0].from_node
+ blender_material.node_tree.nodes.remove(prev_node)
+
+ node = blender_material.node_tree.nodes.new(type="ShaderNodeTexImage")
+ node.location = bsdf.location - Vector((200, 250))
+ image = bpy.data.images.load(image_url)
+ # TODO: orphaned textures after shader recreated?
+ node.image = image
+ blender_material.node_tree.links.new(node.outputs[0], bsdf.inputs[2])
+
+ # TODO: add support for texture data not ifc elements
+ if node and getattr(texture, "IsMappedBy", None):
+ coordinates = texture.IsMappedBy[0]
+ coord = blender_material.node_tree.nodes.new(type="ShaderNodeTexCoord")
+ coord.location = node.location - Vector((200, 0))
+ if coordinates.is_a("IfcTextureCoordinateGenerator") and coordinates.Mode == "COORD":
+ blender_material.node_tree.links.new(coord.outputs["Generated"], node.inputs["Vector"])
+ elif coordinates.is_a("IfcTextureCoordinateGenerator") and coordinates.Mode == "COORD-EYE":
+ blender_material.node_tree.links.new(coord.outputs["Camera"], node.inputs["Vector"])
+ else:
+ blender_material.node_tree.links.new(coord.outputs["UV"], node.inputs["Vector"])
diff --git a/src/blenderbim/blenderbim/tool/material.py b/src/blenderbim/blenderbim/tool/material.py
index 27aaab96f5..0cf0aacdb1 100644
--- a/src/blenderbim/blenderbim/tool/material.py
+++ b/src/blenderbim/blenderbim/tool/material.py
@@ -21,6 +21,8 @@ import ifcopenshell
import blenderbim.core.tool
import blenderbim.tool as tool
import blenderbim.bim.helper
+import ifcopenshell.util.unit
+import ifcopenshell.util.element
class Material(blenderbim.core.tool.Material):
@@ -101,17 +103,6 @@ class Material(blenderbim.core.tool.Material):
return True
return False
- @classmethod
- def select_elements(cls, elements):
- for element in elements:
- obj = tool.Ifc.get_object(element)
- if obj:
- obj.select_set(True)
-
- @classmethod
- def get_active_material_type(cls):
- return bpy.context.scene.BIMMaterialProperties.material_type
-
@classmethod
def load_material_attributes(cls, material):
props = bpy.context.scene.BIMMaterialProperties
@@ -122,7 +113,7 @@ class Material(blenderbim.core.tool.Material):
def enable_editing_material(cls, material):
props = bpy.context.scene.BIMMaterialProperties
props.active_material_id = material.id()
- props.editing_material_type = "ATTRIBUTES"
+ props.editing_material_type = "ATTRIBUTES"
@classmethod
def get_material_attributes(cls):
@@ -133,3 +124,101 @@ class Material(blenderbim.core.tool.Material):
props = bpy.context.scene.BIMMaterialProperties
props.active_material_id = 0
props.editing_material_type = ""
+
+ @classmethod
+ def get_type(cls, element):
+ return ifcopenshell.util.element.get_type(element)
+
+ @classmethod
+ def get_active_object_material(cls):
+ active_obj = bpy.context.active_object
+ if not active_obj:
+ return
+ return active_obj.BIMObjectMaterialProperties.material_type
+
+ @classmethod
+ def get_active_material(cls):
+ return tool.Ifc.get().by_id(int(bpy.context.active_object.BIMObjectMaterialProperties.material))
+
+ @classmethod
+ def get_material(cls, element, should_inherit=False):
+ return ifcopenshell.util.element.get_material(element, should_inherit=should_inherit)
+
+ @classmethod
+ def is_a_material_set(cls, material):
+ return material.is_a() in [
+ "IfcMaterialConstituentSet",
+ "IfcMaterialLayerSet",
+ "IfcMaterialProfileSet",
+ ]
+
+ @classmethod
+ def add_material_to_set(cls, material_set, material):
+ if material_set.is_a("IfcMaterialConstituentSet"):
+ if not material_set.MaterialConstituents:
+ tool.Ifc.run(
+ "material.add_constituent",
+ constituent_set=material_set,
+ material=material,
+ )
+ elif material_set.is_a() == "IfcMaterialLayerSet":
+ if not material_set.MaterialLayers:
+ unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get())
+ layer = tool.Ifc.run(
+ "material.add_layer",
+ layer_set=material_set,
+ material=material,
+ )
+ thickness = 0.1 # Arbitrary metric thickness for now
+ layer.LayerThickness = thickness / unit_scale
+ elif material_set.is_a("IfcMaterialProfileSet"):
+ if not material_set.MaterialProfiles:
+ named_profiles = [p for p in tool.Ifc.get().by_type("IfcProfileDef") if p.ProfileName]
+ if named_profiles:
+ profile = named_profiles[0]
+ else:
+ unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get())
+ size = 0.5 / unit_scale
+ profile = tool.Ifc.get().create_entity(
+ "IfcRectangleProfileDef",
+ ProfileName="New Profile",
+ ProfileType="AREA",
+ XDim=size,
+ YDim=size,
+ )
+ material_profile = tool.Ifc.run(
+ "material.add_profile",
+ profile_set=material_set,
+ material=material,
+ profile=profile,
+ )
+
+ @classmethod
+ def has_material_profile(cls, element):
+ material = cls.get_material(element, should_inherit=False)
+ inherited_material = cls.get_material(element, should_inherit=True)
+ if material and "Profile" in material.is_a():
+ return True
+ if inherited_material and "Profile" in inherited_material.is_a():
+ return True
+ return False
+
+ @classmethod
+ def is_a_flow_segment(cls, element):
+ return element.is_a("IfcFlowSegment")
+
+ @classmethod
+ def replace_material_with_material_profile(cls, element):
+ old_material = cls.get_material(element, should_inherit=False)
+ old_inherited_material = cls.get_material(element, should_inherit=True)
+ material = old_material if old_material and old_material.is_a("IfcMaterial") else None
+ if not material and old_inherited_material:
+ material = old_inherited_material if old_inherited_material.is_a("IfcMaterial") else None
+ if not material:
+ material = tool.Ifc.get().by_type("IfcMaterial")[0]
+ else:
+ blenderbim.core.material.unassign_material(tool.Ifc, tool.Material, objects=[tool.Ifc.get_object(element)])
+ tool.Ifc.run("material.assign_material", product=element, type="IfcMaterialProfileSet", material=material)
+ assinged_material = cls.get_material(element)
+ material_profile = tool.Ifc.run("material.add_profile", profile_set=assinged_material, material=material)
+ return material_profile
diff --git a/src/blenderbim/blenderbim/tool/profile.py b/src/blenderbim/blenderbim/tool/profile.py
index ab1402daaf..1a1fd9f949 100644
--- a/src/blenderbim/blenderbim/tool/profile.py
+++ b/src/blenderbim/blenderbim/tool/profile.py
@@ -21,6 +21,7 @@ import ifcopenshell.util.unit
import ifcopenshell.util.placement
import ifcopenshell.util.representation
import blenderbim.core.tool
+from blenderbim.bim.module.model.decorator import ProfileDecorator
class Profile(blenderbim.core.tool.Profile):
@@ -52,3 +53,20 @@ class Profile(blenderbim.core.tool.Profile):
for e in grouped_edges:
draw.line((tuple(grouped_verts[e[0]]), tuple(grouped_verts[e[1]])), fill="white", width=2)
+
+ @classmethod
+ def is_editing_profile(cls):
+ return ProfileDecorator.installed
+
+ @classmethod
+ def get_profile(cls, element):
+ representations = element.Representation
+ for representation in representations.Representations:
+ if not representation.is_a("IfcShapeRepresentation"):
+ continue
+ for representation_item in representation.Items:
+ if representation_item.is_a("IfcExtrudedAreaSolid"):
+ profile = representation_item.SweptArea
+ if profile:
+ return profile
+ return None
diff --git a/src/blenderbim/blenderbim/tool/sequence.py b/src/blenderbim/blenderbim/tool/sequence.py
index 1fd9b465e7..eef330f713 100644
--- a/src/blenderbim/blenderbim/tool/sequence.py
+++ b/src/blenderbim/blenderbim/tool/sequence.py
@@ -947,7 +947,7 @@ class Sequence(blenderbim.core.tool.Sequence):
def set_material(name, r, g, b):
material = bpy.data.materials.new(name)
material.use_nodes = True
- material.node_tree.nodes["Principled BSDF"].inputs[0].default_value = (r, g, b, 1.0)
+ tool.Blender.get_material_node(material, "BSDF_PRINCIPLED").inputs[0].default_value = (r, g, b, 1.0)
return material
def get_animation_materials():
diff --git a/src/blenderbim/blenderbim/tool/spatial.py b/src/blenderbim/blenderbim/tool/spatial.py
index b88d87aa4b..95369338fd 100644
--- a/src/blenderbim/blenderbim/tool/spatial.py
+++ b/src/blenderbim/blenderbim/tool/spatial.py
@@ -203,7 +203,7 @@ class Spatial(blenderbim.core.tool.Spatial):
cls.props.is_container_update_enabled = False
parent = tool.Ifc.get().by_type("IfcProject")[0]
- for object in ifcopenshell.util.element.get_parts(parent):
+ for object in ifcopenshell.util.element.get_parts(parent) or []:
if object.is_a("IfcSpatialElement"):
cls.create_new_storey_li(object, 0)
cls.props.is_container_update_enabled = True
@@ -222,7 +222,7 @@ class Spatial(blenderbim.core.tool.Spatial):
if new.has_decomposition:
new.has_children = True
if new.is_expanded:
- for related_object in ifcopenshell.util.element.get_parts(element):
+ for related_object in ifcopenshell.util.element.get_parts(element) or []:
if related_object.is_a("IfcSpatialElement"):
cls.create_new_storey_li(related_object, level_index + 1)
diff --git a/src/blenderbim/blenderbim/tool/style.py b/src/blenderbim/blenderbim/tool/style.py
index cfea6d1fce..33e4174148 100644
--- a/src/blenderbim/blenderbim/tool/style.py
+++ b/src/blenderbim/blenderbim/tool/style.py
@@ -22,6 +22,30 @@ import ifcopenshell
import blenderbim.core.tool
import blenderbim.tool as tool
import blenderbim.bim.helper
+import os.path
+
+# fmt: off
+TEXTURE_MAPS_BY_METHODS = {
+ "PHYSICAL": ("NORMAL", "EMISSIVE", "METALLICROUGHNESS", "DIFFUSE"),
+ "FLAT": ("EMISSIVE",)
+}
+# fmt: on
+
+STYLE_PROPS_MAP = {
+ "reflectance_method": "ReflectanceMethod",
+ "diffuse_color": "DiffuseColour",
+ "surface_color": "SurfaceColour",
+ "transparency": "Transparency",
+ "roughness": "SpecularHighlight",
+ "metallic": "SpecularColour",
+}
+
+STYLE_TEXTURE_PROPS_MAP = {
+ "EMISSIVE": "emissive_path",
+ "NORMAL": "normal_path",
+ "METALLICROUGHNESS": "metallic_roughness_path",
+ "DIFFUSE": "diffuse_path",
+}
class Style(blenderbim.core.tool.Style):
@@ -33,6 +57,10 @@ class Style(blenderbim.core.tool.Style):
def disable_editing(cls, obj):
obj.BIMStyleProperties.is_editing = False
+ @classmethod
+ def disable_editing_external_style(cls, obj):
+ obj.BIMStyleProperties.is_editing_external_style = False
+
@classmethod
def disable_editing_styles(cls):
bpy.context.scene.BIMStylesProperties.is_editing = False
@@ -41,6 +69,10 @@ class Style(blenderbim.core.tool.Style):
def enable_editing(cls, obj):
obj.BIMStyleProperties.is_editing = True
+ @classmethod
+ def enable_editing_external_style(cls, obj):
+ obj.BIMStyleProperties.is_editing_external_style = True
+
@classmethod
def enable_editing_styles(cls):
bpy.context.scene.BIMStylesProperties.is_editing = True
@@ -49,6 +81,10 @@ class Style(blenderbim.core.tool.Style):
def export_surface_attributes(cls, obj):
return blenderbim.bim.helper.export_attributes(obj.BIMStyleProperties.attributes)
+ @classmethod
+ def export_external_style_attributes(cls, obj):
+ return blenderbim.bim.helper.export_attributes(obj.BIMStyleProperties.external_style_attributes)
+
@classmethod
def get_active_style_type(cls):
return bpy.context.scene.BIMStylesProperties.style_type
@@ -74,70 +110,272 @@ class Style(blenderbim.core.tool.Style):
return
@classmethod
- def get_surface_rendering_attributes(cls, obj):
+ def get_style_elements(cls, blender_material):
+ if not blender_material.BIMMaterialProperties.ifc_style_id:
+ return {}
+ style = tool.Ifc.get().by_id(blender_material.BIMMaterialProperties.ifc_style_id)
+ style_elements = {}
+ for style in style.Styles:
+ style_elements[style.is_a()] = style
+ return style_elements
+
+ @classmethod
+ def get_surface_style_from_props(cls, blender_material):
+ """convert blender style props to ifc props"""
+ surface_style_data = dict()
+ props = blender_material.BIMStyleProperties
+ for prop_blender, prop_ifc in STYLE_PROPS_MAP.items():
+ surface_style_data[prop_ifc] = getattr(props, prop_blender)
+ if surface_style_data["ReflectanceMethod"] == "PHYSICAL" and tool.Ifc.get_schema() != "IFC4X3":
+ surface_style_data["ReflectanceMethod"] = "NOTDEFINED"
+ surface_style_data["DiffuseColour"] = ("IfcColourRgb", surface_style_data["DiffuseColour"])
+ return surface_style_data
+
+ @classmethod
+ def get_texture_style_from_props(cls, blender_material):
+ props = blender_material.BIMStyleProperties
+
+ textures = []
+ texture_maps = TEXTURE_MAPS_BY_METHODS[props.reflectance_method]
+ for prop_mode in texture_maps:
+ prop_name = STYLE_TEXTURE_PROPS_MAP[prop_mode]
+ path = getattr(props, prop_name)
+ if not path:
+ continue
+ if not os.path.abspath(path) and tool.Ifc.get_path():
+ path = os.path.join(os.path.dirname(tool.Ifc.get_path()), path)
+
+ texture_data = {
+ "Mode": prop_mode,
+ "type": "IfcImageTexture",
+ "URLReference": path,
+ }
+ textures.append(texture_data)
+
+ return textures
+
+ @classmethod
+ def set_surface_style_props(cls, blender_material):
+ """set blender style props based on current surface material"""
+ props = blender_material.BIMStyleProperties
+ # make sure won't be updating while we changing it
+ prev_update_graph_value = props.update_graph
+ props["update_graph"] = False
+
+ style_elements = tool.Style.get_style_elements(blender_material)
+ surface_style = style_elements.get("IfcSurfaceStyleRendering", None)
+ texture_style = style_elements.get("IfcSurfaceStyleWithTextures", None)
+
+ # in case we have just IfcSurfaceStyleShading
+ if not surface_style:
+ return
+
+ style_data = tool.Loader.surface_style_to_dict(surface_style)
+ if style_data["ReflectanceMethod"] == "NOTDEFINED":
+ style_data["ReflectanceMethod"] = "PHYSICAL"
+ style_data["DiffuseColour"] = style_data["DiffuseColour"][1]
+
+ for prop_blender, prop_ifc in STYLE_PROPS_MAP.items():
+ prop_value = style_data[prop_ifc]
+ if prop_value is None:
+ prop_value = tool.Blender.get_blender_prop_default_value(props, prop_blender)
+ setattr(props, prop_blender, prop_value)
+
+ texture_maps = TEXTURE_MAPS_BY_METHODS[style_data["ReflectanceMethod"]]
+ unused_texture_maps = list(STYLE_TEXTURE_PROPS_MAP.keys())
+
+ if texture_style:
+ for texture in texture_style.Textures:
+ if texture.Mode not in texture_maps:
+ print(f"WARNING. Unsupported texture mode: {texture.Mode}. Supported maps: {texture_maps}")
+ continue
+ prop_blender = STYLE_TEXTURE_PROPS_MAP.get(texture.Mode, None)
+ setattr(props, prop_blender, texture.URLReference)
+ unused_texture_maps.remove(texture.Mode)
+
+ # clear empty texture fields
+ for texture_mode in unused_texture_maps:
+ prop_blender = STYLE_TEXTURE_PROPS_MAP[texture_mode]
+ setattr(props, prop_blender, "")
+
+ props["update_graph"] = prev_update_graph_value
+
+ @classmethod
+ def get_surface_rendering_attributes(cls, obj, verbose=True):
+ report = (lambda *x: print(*x)) if verbose else (lambda *x: None)
+
+ def color_to_ifc_format(color):
+ return {
+ "Name": None,
+ "Red": color[0],
+ "Green": color[1],
+ "Blue": color[2],
+ }
+
+ def get_input_node(node, input_name=None, of_type=None, input_index=None):
+ input_pin = node.inputs[input_name] if input_index is None else node.inputs[input_index]
+ if of_type:
+ return next((l.from_node for l in input_pin.links if l.from_node.type == of_type), None)
+ return next((l.from_node for l in input_pin.links), None)
+
+ props = obj.BIMStyleProperties
transparency = 1 - obj.diffuse_color[3]
diffuse_color = obj.diffuse_color
-
+ viewport_color = color_to_ifc_format(obj.diffuse_color)
attributes = {
- "SurfaceColour": {
- "Name": None,
- "Red": obj.diffuse_color[0],
- "Green": obj.diffuse_color[1],
- "Blue": obj.diffuse_color[2],
- },
+ "SurfaceColour": viewport_color,
"Transparency": transparency,
}
+ GREEN = "\033[32m"
+ BLUE = "\033[1;34m"
+ R = "\033[0m" # RESET symbol
- bsdfs = {n.type: n for n in obj.node_tree.nodes}
- if "BSDF_GLOSSY" in bsdfs:
- attributes["ReflectanceMethod"] = "METAL"
- bsdf = bsdfs["BSDF_GLOSSY"]
+ report("--------------------")
+ report("Verbose method of getting surface rendering attributes enabled.")
+ report("If some attribute is not mentioned below, then it won't be saved to IFC.")
+ report("--------------------")
+ report(f"{GREEN}Viewport color{R} saved as {GREEN}SurfaceColour{R}")
+
+ # TODO: make sure bsdf is connected to the output?
+ bsdfs = {n.type: n for n in obj.node_tree.nodes if n.outputs and n.outputs[0].is_linked}
+ if "BSDF_PRINCIPLED" not in bsdfs:
+ report(f"{GREEN}Viewport color alpha{R} saved as {GREEN}Transparency{R}")
+
+ # TODO: should escape referring to pins by their name to support different languages
+ material_output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL", {"is_active_output": True})
+ surface_output = get_input_node(material_output, "Surface")
+
+ if surface_output and surface_output.type == "MIX_SHADER":
+ mix_shader = surface_output
+ if (
+ get_input_node(mix_shader, "Fac", "LIGHT_PATH")
+ and get_input_node(mix_shader, input_index=1, of_type="BSDF_TRANSPARENT")
+ and (second_input_node := get_input_node(mix_shader, input_index=2))
+ and second_input_node.type in ("RGB", "TEX_IMAGE")
+ ):
+ report(
+ f"Because of {BLUE}MIX_SHADER + LIGHT_PATH + BSDF_TRANSPARENT + RGB/TEX{R} node setup reflectance method identified as {BLUE}FLAT{R}"
+ )
+ attributes["ReflectanceMethod"] = "FLAT"
+ attributes["SpecularHighlight"] = None
+
+ if second_input_node.type == "RGB":
+ report(f"RGB {GREEN}Color{R} saved as {GREEN}DiffuseColour{R}")
+ diffuse_color = second_input_node.outputs[0].default_value
+ elif second_input_node.type == "TEX_IMAGE":
+ report(f"{GREEN}BBIM Panel Diffuse Color{R} saved as {GREEN}DiffuseColour{R}")
+ diffuse_color = props.diffuse_color
+
+ elif surface_output and (
+ (surface_output.type == "BSDF_PRINCIPLED" and (bsdf := surface_output))
+ or (
+ surface_output.type == "ADD_SHADER"
+ and (bsdf := get_input_node(surface_output, input_index=1, of_type="BSDF_PRINCIPLED"))
+ )
+ ):
+ report(f"Because of {BLUE}BSDF_PRINCIPLED{R} node reflectance method identified as {BLUE}PHYSICAL{R}")
+ attributes["ReflectanceMethod"] = "NOTDEFINED" if tool.Ifc.get_schema() != "IFC4X3" else "PHYSICAL"
+
+ report(f"BSDF {GREEN}Base Color{R} saved as {GREEN}DiffuseColour{R}")
+ diffuse_color = bsdf.inputs["Base Color"].default_value
+
+ report(f"BSDF {GREEN}Metallic{R} saved as {GREEN}SpecularColour{R}")
+ attributes["SpecularColour"] = round(bsdf.inputs["Metallic"].default_value, 3)
+
+ report(f"BSDF {GREEN}Roughness{R} saved as {GREEN}IfcSpecularRoughness{R}")
attributes["SpecularHighlight"] = {"IfcSpecularRoughness": round(bsdf.inputs["Roughness"].default_value, 3)}
+
+ report(f"BSDF {GREEN}Alpha{R} saved as {GREEN}Transparency{R}")
+ attributes["Transparency"] = 1 - bsdf.inputs["Alpha"].default_value
+
+ elif "BSDF_GLOSSY" in bsdfs:
+ attributes["ReflectanceMethod"] = "METAL"
+ report(f"Because of {BLUE}BSDF_GLOSSY{R} node reflectance method identified as {BLUE}METAL{R}")
+ bsdf = bsdfs["BSDF_GLOSSY"]
+
+ report(f"BSDF {GREEN}Roughness{R} saved as {GREEN}IfcSpecularRoughness{R}")
+ attributes["SpecularHighlight"] = {"IfcSpecularRoughness": round(bsdf.inputs["Roughness"].default_value, 3)}
+
+ report(f"BSDF {GREEN}Color{R} saved as {GREEN}DiffuseColour{R}")
diffuse_color = bsdf.inputs["Color"].default_value
+
elif "BSDF_DIFFUSE" in bsdfs:
+ report(f"Because of {BLUE}BSDF_DIFFUSE{R} node reflectance method identified as {BLUE}MATT{R}")
attributes["ReflectanceMethod"] = "MATT"
bsdf = bsdfs["BSDF_DIFFUSE"]
+
+ report(f"BSDF {GREEN}Roughness{R} saved as {GREEN}IfcSpecularRoughness{R}")
attributes["SpecularHighlight"] = {"IfcSpecularRoughness": round(bsdf.inputs["Roughness"].default_value, 3)}
+
+ report(f"BSDF {GREEN}Color{R} saved as {GREEN}DiffuseColour{R}")
diffuse_color = bsdf.inputs["Color"].default_value
+
elif "BSDF_GLASS" in bsdfs:
+ report(f"Because of {BLUE}BSDF_GLASS{R} node reflectance method identified as {BLUE}GLASS{R}")
attributes["ReflectanceMethod"] = "GLASS"
bsdf = bsdfs["BSDF_GLASS"]
+
+ report(f"BSDF {GREEN}Roughness{R} saved as {GREEN}IfcSpecularRoughness{R}")
attributes["SpecularHighlight"] = {"IfcSpecularRoughness": round(bsdf.inputs["Roughness"].default_value, 3)}
+
+ report(f"BSDF {GREEN}Color{R} saved as {GREEN}DiffuseColour{R}")
diffuse_color = bsdf.inputs["Color"].default_value
+
+ # TODO: remove?
elif "EMISSION" in bsdfs:
+ report(f"Because of {BLUE}EMISSION{R} node reflectance method identified as {BLUE}FLAT{R}")
attributes["ReflectanceMethod"] = "FLAT"
bsdf = bsdfs["EMISSION"]
+
attributes["SpecularHighlight"] = None
+ report(f"BSDF {GREEN}Color{R} saved as {GREEN}DiffuseColour{R}")
+
diffuse_color = bsdf.inputs["Color"].default_value
+
+ # TODO: remove?
elif "BSDF_PRINCIPLED" in bsdfs:
- attributes["ReflectanceMethod"] = "NOTDEFINED"
+ report(f"Because of {BLUE}BSDF_PRINCIPLED{R} node reflectance method identified as {BLUE}PHYSICAL{R}")
+ attributes["ReflectanceMethod"] = "NOTDEFINED" if tool.Ifc.get_schema() != "IFC4X3" else "PHYSICAL"
bsdf = bsdfs["BSDF_PRINCIPLED"]
- attributes["SpecularColour"] = round(bsdf.inputs["Metallic"].default_value, 3)
- attributes["SpecularHighlight"] = {"IfcSpecularRoughness": round(bsdf.inputs["Roughness"].default_value, 3)}
+
+ report(f"BSDF {GREEN}Base Color{R} saved as {GREEN}DiffuseColour{R}")
diffuse_color = bsdf.inputs["Base Color"].default_value
+
+ report(f"BSDF {GREEN}Metallic{R} saved as {GREEN}SpecularColour{R}")
+ attributes["SpecularColour"] = round(bsdf.inputs["Metallic"].default_value, 3)
+
+ report(f"BSDF {GREEN}Roughness{R} saved as {GREEN}IfcSpecularRoughness{R}")
+ attributes["SpecularHighlight"] = {"IfcSpecularRoughness": round(bsdf.inputs["Roughness"].default_value, 3)}
+
+ report(f"BSDF {GREEN}Alpha{R} saved as {GREEN}Transparency{R}")
attributes["Transparency"] = 1 - bsdf.inputs["Alpha"].default_value
+
else:
+ report(f"No supported bsdfs found - reflectance method identified as {BLUE}NOTDEFINED{R}")
attributes["ReflectanceMethod"] = "NOTDEFINED"
+
attributes["SpecularHighlight"] = None
- attributes["DiffuseColour"] = attributes["SurfaceColour"]
+ report(f"{GREEN}Viewport color{R} saved as {GREEN}DiffuseColour{R}")
+ attributes["DiffuseColour"] = viewport_color
return attributes
- attributes["DiffuseColour"] = {
- "Name": None,
- "Red": diffuse_color[0],
- "Green": diffuse_color[1],
- "Blue": diffuse_color[2],
- }
-
+ attributes["DiffuseColour"] = color_to_ifc_format(diffuse_color)
return attributes
@classmethod
def get_surface_rendering_style(cls, obj):
- if obj.BIMMaterialProperties.ifc_style_id:
- style = tool.Ifc.get().by_id(obj.BIMMaterialProperties.ifc_style_id)
- items = [s for s in style.Styles if s.is_a("IfcSurfaceStyleRendering")]
- if items:
- return items[0]
+ style_elements = cls.get_style_elements(obj)
+ return style_elements.get("IfcSurfaceStyleRendering", None)
+
+ @classmethod
+ def get_texture_style(cls, obj):
+ style_elements = cls.get_style_elements(obj)
+ return style_elements.get("IfcSurfaceStyleWithTextures", None)
+
+ @classmethod
+ def get_external_style(cls, obj):
+ style_elements = cls.get_style_elements(obj)
+ return style_elements.get("IfcExternallyDefinedSurfaceStyle", None)
@classmethod
def get_surface_shading_attributes(cls, obj):
@@ -197,8 +435,20 @@ class Style(blenderbim.core.tool.Style):
@classmethod
def import_surface_attributes(cls, style, obj):
- obj.BIMStyleProperties.attributes.clear()
- blenderbim.bim.helper.import_attributes2(style, obj.BIMStyleProperties.attributes)
+ attributes = obj.BIMStyleProperties.attributes
+ attributes.clear()
+ blenderbim.bim.helper.import_attributes2(style, attributes)
+
+ @classmethod
+ def import_external_style_attributes(cls, style, obj):
+ attributes = obj.BIMStyleProperties.external_style_attributes
+ attributes.clear()
+ blenderbim.bim.helper.import_attributes2(style, attributes)
+
+ @classmethod
+ def has_blender_external_style(cls, style_elements):
+ external_style = style_elements.get("IfcExternallyDefinedSurfaceStyle", None)
+ return bool(external_style and external_style.Location.endswith(".blend"))
@classmethod
def is_editing_styles(cls):
@@ -214,3 +464,7 @@ class Style(blenderbim.core.tool.Style):
obj = tool.Ifc.get_object(element)
if obj:
obj.select_set(True)
+
+ @classmethod
+ def change_current_style_type(cls, blender_material, style_type):
+ blender_material.BIMStyleProperties.active_style_type = style_type
diff --git a/src/blenderbim/blenderbim/tool/system.py b/src/blenderbim/blenderbim/tool/system.py
index 538b2db863..cc6975df37 100644
--- a/src/blenderbim/blenderbim/tool/system.py
+++ b/src/blenderbim/blenderbim/tool/system.py
@@ -129,16 +129,10 @@ class System(blenderbim.core.tool.System):
ifc_representation_class=ifc_representation_class,
)
- @classmethod
- def select_elements(cls, elements):
- for element in elements:
- obj = tool.Ifc.get_object(element)
- if obj:
- obj.select_set(True)
@classmethod
def select_system_products(cls, system):
- cls.select_elements(ifcopenshell.util.system.get_system_elements(system))
+ tool.Spatial.select_products(ifcopenshell.util.system.get_system_elements(system))
@classmethod
def set_active_system(cls, system):
diff --git a/src/blenderbim/blenderbim_icons.blend b/src/blenderbim/blenderbim_icons.blend
index 75dd8bf260..dfbdff25f1 100644
Binary files a/src/blenderbim/blenderbim_icons.blend and b/src/blenderbim/blenderbim_icons.blend differ
diff --git a/src/blenderbim/docs/devs/installation.rst b/src/blenderbim/docs/devs/installation.rst
index c614e3c197..b6e1ae66db 100644
--- a/src/blenderbim/docs/devs/installation.rst
+++ b/src/blenderbim/docs/devs/installation.rst
@@ -72,34 +72,39 @@ restart Blender to see changes).
For Linux or Mac:
-::
+:: code-block:: console
$ git clone https://github.com/IfcOpenShell/IfcOpenShell.git
$ cd IfcOpenShell
+ # path to BlenderBIM addon
+ # default path on Mac: "/Users/$USER/Library/Application Support/Blender/X.X/scripts/addons/blenderbim"
+ # default path on Linux: "$HOME/.config/blender/X.X/"
+ $ BLENDER_ADDON_PATH="/path/to/blender/X.XX/scripts/addons/blenderbim"
+
# Remove the Blender add-on Python code
- $ rm -r /path/to/blender/X.XX/scripts/addons/blenderbim/core/
- $ rm -r /path/to/blender/X.XX/scripts/addons/blenderbim/tool/
- $ rm -r /path/to/blender/X.XX/scripts/addons/blenderbim/bim/
+ $ rm -r $BLENDER_ADDON_PATH/core/
+ $ rm -r $BLENDER_ADDON_PATH/tool/
+ $ rm -r $BLENDER_ADDON_PATH/bim/
# Replace them with links to the Git repository
- $ ln -s src/blenderbim/blenderbim/core /path/to/blender/X.XX/scripts/addons/blenderbim/core
- $ ln -s src/blenderbim/blenderbim/tool /path/to/blender/X.XX/scripts/addons/blenderbim/tool
- $ ln -s src/blenderbim/blenderbim/bim /path/to/blender/X.XX/scripts/addons/blenderbim/bim
+ $ ln -s $PWD/src/blenderbim/blenderbim/core $BLENDER_ADDON_PATH/core
+ $ ln -s $PWD/src/blenderbim/blenderbim/tool $BLENDER_ADDON_PATH/tool
+ $ ln -s $PWD/src/blenderbim/blenderbim/bim $BLENDER_ADDON_PATH/bim
# Remove the IfcOpenShell dependency Python code
- $ rm -r /path/to/blender/X.XX/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/api
- $ rm -r /path/to/blender/X.XX/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/util
+ $ rm -r $BLENDER_ADDON_PATH/libs/site/packages/ifcopenshell/api
+ $ rm -r $BLENDER_ADDON_PATH/libs/site/packages/ifcopenshell/util
# Replace them with links to the Git repository
- $ ln -s src/ifcopenshell-python/ifcopenshell/api /path/to/blender/X.XX/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/api
- $ ln -s src/ifcopenshell-python/ifcopenshell/util /path/to/blender/X.XX/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/util
+ $ ln -s $PWD/src/ifcopenshell-python/ifcopenshell/api $BLENDER_ADDON_PATH/libs/site/packages/ifcopenshell/api
+ $ ln -s $PWD/src/ifcopenshell-python/ifcopenshell/util $BLENDER_ADDON_PATH/libs/site/packages/ifcopenshell/util
# Manually download some third party dependencies
- $ cd /path/to/blender/X.XX/scripts/addons/blenderbim/bim/data/gantt
+ $ cd $BLENDER_ADDON_PATH/bim/data/gantt
$ wget https://raw.githubusercontent.com/jsGanttImproved/jsgantt-improved/master/dist/jsgantt.js
$ wget https://raw.githubusercontent.com/jsGanttImproved/jsgantt-improved/master/dist/jsgantt.css
- $ cd /path/to/blender/X.XX/scripts/addons/blenderbim/bim/schema
+ $ cd $BLENDER_ADDON_PATH/bim/schema
$ wget https://github.com/BrickSchema/Brick/releases/download/nightly/Brick.ttl
Or, if you're on Windows, you can use the batch script below.
diff --git a/src/blenderbim/docs/users/creating_an_ifc_model.rst b/src/blenderbim/docs/users/creating_an_ifc_model.rst
index c2593a5b95..5e0d60b6a9 100644
--- a/src/blenderbim/docs/users/creating_an_ifc_model.rst
+++ b/src/blenderbim/docs/users/creating_an_ifc_model.rst
@@ -33,6 +33,12 @@ Any Blender object that you want to be part of IFC project must be converted
into a IFC object by assigning a category. This category is known as the **IFC
Class**.
+.. seealso::
+
+ Use the `IFC Class search tool
+ `__ to help choose an **IFC
+ Class**!
+
Select only the default Blender Cube (selected objects are highlighted in
orange, careful not to select anything else!), switch to the **Object
Properties** tab, and find the **IFC Class** panel. Let's pretend our Cube is a
diff --git a/src/blenderbim/docs/users/installation.rst b/src/blenderbim/docs/users/installation.rst
index 9f99e358a0..713f494a4c 100644
--- a/src/blenderbim/docs/users/installation.rst
+++ b/src/blenderbim/docs/users/installation.rst
@@ -137,13 +137,21 @@ FAQ
**Unstable installation** section to check that you have installed the
correct version.
-2. **I am on Ubuntu and get an error similar to "ImportError: /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29 not found"**
+2. **I am on Ubuntu and get an error similar to "ImportError:
+ /lib/x86_64-linux-gnu/libm.so.6: version GLIBC_2.29 not found"**
Our latest package which uses IfcOpenShell v0.7.0 is built using Ubuntu 20 LTS.
If you have an older Ubuntu version, you can either upgrade to 19.10 or above,
or you'll need to compile IfcOpenShell yourself.
-3. **Some other error prevents me from installing or doing basic functions with
+3. **I get an error saying "ModuleNotFoundError: No module named 'numpy'"**"
+
+ If you have installed Blender from another source instead of from
+ `Blender.org `__, such as from your
+ distro's package repositories, then you may be missing some modules like
+ ``numpy``. Try installing it manually like ``apt install python-numpy``.
+
+4. **Some other error prevents me from installing or doing basic functions with
the add-on. Is it specific to my environment?**
Sometimes it is helpful to try installing and using the BlenderBIM Add-on on
@@ -157,3 +165,15 @@ FAQ
If this fixes your issue, consider disabling other add-ons one by one until
you find a conflict as a next step to isolating the issue.
+
+5. **I get an error similar to RuntimeError: Instance #1234 not found**
+
+ Blender saves and loads projects to a ``.blend`` file. However. the
+ BlenderBIM Add-on works with native IFC, and this means instead of saving
+ and loading ``.blend`` files, you should instead save and load the ``.ifc``
+ project.
+
+ If you have opened a ``.blend`` file, there is a risk that the contents of
+ the ``.blend`` session do not correlate to the contents of the ``.ifc``,
+ which can cause this error. Unless you are an advanced user, only save and
+ load ``.ifc`` files.
diff --git a/src/blenderbim/test/bim/feature/classification.feature b/src/blenderbim/test/bim/feature/classification.feature
index 48b5ae0dc0..59a1e326f5 100644
--- a/src/blenderbim/test/bim/feature/classification.feature
+++ b/src/blenderbim/test/bim/feature/classification.feature
@@ -226,7 +226,7 @@ Scenario: Add classification reference - cost
And I press "bim.add_cost_schedule"
And the variable "cost_schedule" is "{ifc}.by_type('IfcCostSchedule')[0].id()"
And I press "bim.enable_editing_cost_items(cost_schedule={cost_schedule})"
- And I press "bim.add_summary_cost_item(cost_schedule={cost_schedule})"
+ And I press "bim.add_summary_cost_item()"
And I press "bim.change_classification_level(parent_id={classification})"
And the variable "reference" is "{classification_ifc}.by_type('IfcClassificationReference')[0].id()"
When I press "bim.add_classification_reference(reference={reference}, obj='', obj_type='Cost')"
@@ -241,7 +241,7 @@ Scenario: Remove classification reference - cost
And I press "bim.add_cost_schedule"
And the variable "cost_schedule" is "{ifc}.by_type('IfcCostSchedule')[0].id()"
And I press "bim.enable_editing_cost_items(cost_schedule={cost_schedule})"
- And I press "bim.add_summary_cost_item(cost_schedule={cost_schedule})"
+ And I press "bim.add_summary_cost_item()"
And I press "bim.change_classification_level(parent_id={classification})"
And the variable "reference" is "{classification_ifc}.by_type('IfcClassificationReference')[0].id()"
And I press "bim.add_classification_reference(reference={reference}, obj='', obj_type='Cost')"
diff --git a/src/blenderbim/test/bim/feature/drawing.feature b/src/blenderbim/test/bim/feature/drawing.feature
index 2b287bf9b0..e9d9ec5a81 100644
--- a/src/blenderbim/test/bim/feature/drawing.feature
+++ b/src/blenderbim/test/bim/feature/drawing.feature
@@ -57,9 +57,9 @@ Scenario: Remove drawing
And the variable "wall1" is "IfcStore.get_file().by_type('IfcWall')[-1].id()"
And I press "bim.add_drawing"
And the variable "drawing" is "IfcStore.get_file().by_type('IfcAnnotation')[0].id()"
- And the collection "IfcGroup/PLAN_VIEW" exists
+ And the collection "IfcAnnotation/PLAN_VIEW" exists
When I press "bim.remove_drawing(drawing={drawing})"
- Then the collection "IfcGroup/PLAN_VIEW" does not exist
+ Then the collection "IfcAnnotation/PLAN_VIEW" does not exist
Scenario: Remove drawing - via object deletion
Given an empty IFC project
@@ -70,9 +70,10 @@ Scenario: Remove drawing - via object deletion
And the variable "wall1" is "IfcStore.get_file().by_type('IfcWall')[-1].id()"
And I press "bim.add_drawing"
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
When I press "bim.override_object_delete"
- Then the collection "IfcGroup/PLAN_VIEW" does not exist
+ Then the collection "IfcAnnotation/PLAN_VIEW" does not exist
Scenario: Remove drawing - deleting active drawing
Given an empty IFC project
@@ -83,9 +84,10 @@ Scenario: Remove drawing - deleting active drawing
And the variable "wall1" is "IfcStore.get_file().by_type('IfcWall')[-1].id()"
And I press "bim.add_drawing"
And the variable "drawing" is "IfcStore.get_file().by_type('IfcAnnotation')[0].id()"
+ And the collection "IfcAnnotation/PLAN_VIEW" exists
And I set "scene.DocProperties.active_drawing_index" to "0"
And I press "bim.activate_drawing(drawing={drawing})"
And the object "IfcAnnotation/PLAN_VIEW" is selected
When I press "bim.override_object_delete"
- Then the collection "IfcGroup/PLAN_VIEW" does not exist
+ Then the collection "IfcAnnotation/PLAN_VIEW" does not exist
diff --git a/src/blenderbim/test/bim/feature/material.feature b/src/blenderbim/test/bim/feature/material.feature
index 3e850021bb..18d9b8b0bc 100644
--- a/src/blenderbim/test/bim/feature/material.feature
+++ b/src/blenderbim/test/bim/feature/material.feature
@@ -156,26 +156,31 @@ Scenario: Unassign material - material layer set
When I press "bim.unassign_material"
Then nothing happens
-Scenario: Unassign material - material layer set usages will not be removed
+Scenario: Unassign material - removing inherited material
Given an empty IFC project
And I add a cube
And the object "Cube" is selected
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
And I press "bim.assign_class"
+
And I add an empty
And the object "Empty" is selected
And I set "scene.BIMRootProperties.ifc_product" to "IfcElementType"
And I set "scene.BIMRootProperties.ifc_class" to "IfcWallType"
And I press "bim.assign_class"
+
And I press "bim.add_material(obj='')"
And I set "active_object.BIMObjectMaterialProperties.material_type" to "IfcMaterialLayerSet"
And I press "bim.assign_material"
+
And the object "IfcWall/Cube" is selected
When the variable "type" is "{ifc}.by_type('IfcWallType')[0].id()"
And I press "bim.assign_type(relating_type={type}, related_object='IfcWall/Cube')"
+
Then the object "IfcWall/Cube" has a "100" thick layered material containing the material "Default"
+
When I press "bim.unassign_material"
- Then the object "IfcWall/Cube" has a "100" thick layered material containing the material "Default"
+ Then the object "IfcWall/Cube" has no IFC materials
Scenario: Enable editing assigned material - material layer set
Given an empty IFC project
@@ -435,17 +440,20 @@ Scenario: Remove material set layer
And the object "Cube" is selected
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
And I press "bim.assign_class"
+
And I add an empty
And the object "Empty" is selected
And I set "scene.BIMRootProperties.ifc_product" to "IfcElementType"
And I set "scene.BIMRootProperties.ifc_class" to "IfcWallType"
And I press "bim.assign_class"
+
And I press "bim.add_material(obj='')"
And I set "active_object.BIMObjectMaterialProperties.material_type" to "IfcMaterialLayerSet"
And I press "bim.assign_material"
+
And I press "bim.enable_editing_assigned_material"
And the variable "material_set" is "{ifc}.by_type('IfcMaterialLayerSet')[0].id()"
- And I press "bim.remove_layer(layer={ifc}.by_id({material_set}).MaterialLayers[0].id())"
+
And I press "bim.add_layer(layer_set={material_set})"
- When I press "bim.remove_layer(layer={ifc}.by_id({material_set}).MaterialLayers[0].id())"
- Then nothing happens
+ And I press "bim.remove_layer(layer={ifc}.by_id({material_set}).MaterialLayers[0].id())"
+ Then I press "bim.remove_layer(layer={ifc}.by_id({material_set}).MaterialLayers[0].id())" and expect error "Error: At least one layer must exist"
diff --git a/src/blenderbim/test/bim/feature/project.feature b/src/blenderbim/test/bim/feature/project.feature
index 1a1ab7f721..b44228a69c 100644
--- a/src/blenderbim/test/bim/feature/project.feature
+++ b/src/blenderbim/test/bim/feature/project.feature
@@ -393,7 +393,7 @@ Scenario: Export IFC - with basic contents and saving as a relative path
Given an empty Blender session
And I press "bim.load_project(filepath='{cwd}/test/files/basic.ifc')"
When I press "wm.save_mainfile(filepath='{cwd}/test/files/temp/export.blend')"
- And I press "export_ifc.bim(filepath='{cwd}/test/files/temp/export.ifc', use_relative_path=True)"
+ And I press "export_ifc.bim(filepath='{cwd}/test/files/temp/export.ifc', use_relative_path=True, save_as_invoked=True)"
Then "scene.BIMProperties.ifc_file" is "export.ifc"
Scenario: Export IFC - with deleted objects synchronised
diff --git a/src/blenderbim/test/bim/feature/void.feature b/src/blenderbim/test/bim/feature/void.feature
index 9052fb8409..44691a35d1 100644
--- a/src/blenderbim/test/bim/feature/void.feature
+++ b/src/blenderbim/test/bim/feature/void.feature
@@ -81,20 +81,25 @@ Scenario: Add an opening to Element B with a void that already voids Element A
And the object "Cube" is selected
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
And I press "bim.assign_class"
+
And I add a cube
And the object "Cube" is selected
And I press "bim.assign_class"
+
And I press "bim.add_potential_opening"
And the object "Opening" is selected
And additionally the object "IfcWall/Cube" is selected
And I press "bim.add_opening"
+
And the object "IfcWall/Cube" is selected
And I press "bim.show_openings"
+
When the object "IfcOpeningElement/Opening" is selected
And additionally the object "IfcWall/Cube.001" is selected
And I press "bim.add_opening"
- Then the object "IfcWall/Cube" is voided by "Opening"
- And the object "IfcWall/Cube.001" is not voided by "Opening"
+
+ Then the object "IfcWall/Cube" is not voided by "Opening"
+ And the object "IfcWall/Cube.001" is voided by "Opening"
Scenario: Remove opening
Given an empty IFC project
diff --git a/src/blenderbim/test/bim/test_feature.py b/src/blenderbim/test/bim/test_feature.py
index 568bd48e13..816c762c28 100644
--- a/src/blenderbim/test/bim/test_feature.py
+++ b/src/blenderbim/test/bim/test_feature.py
@@ -65,33 +65,28 @@ def an_untestable_scenario():
@given("an empty Blender session")
@when("an empty Blender session is started")
-def an_empty_ifc_project():
+def an_empty_blender_session():
IfcStore.purge()
bpy.ops.wm.read_homefile(app_template="")
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)
+ # default project settings
+ bpy.context.scene.unit_settings.system = "METRIC"
+ bpy.context.scene.unit_settings.length_unit = "MILLIMETERS"
+ bpy.context.scene.BIMProjectProperties.template_file = '0'
+
@given("an empty IFC project")
def an_empty_ifc_project():
- IfcStore.purge()
- bpy.ops.wm.read_homefile(app_template="")
- 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)
- bpy.context.scene.unit_settings.system = "METRIC"
- bpy.context.scene.unit_settings.length_unit = "MILLIMETERS"
+ an_empty_blender_session()
bpy.ops.bim.create_project()
@given("an empty IFC2X3 project")
-def an_empty_ifc_project():
- IfcStore.purge()
- bpy.ops.wm.read_homefile(app_template="")
- 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)
+def an_empty_ifc_2x3_project():
+ an_empty_blender_session()
bpy.context.scene.BIMProjectProperties.export_schema = "IFC2X3"
bpy.ops.bim.create_project()
@@ -164,6 +159,21 @@ def i_add_a_plane_of_size_size_at_location(size, location):
bpy.ops.mesh.primitive_plane_add(size=float(size), location=[float(co) for co in location.split(",")])
+@then(parsers.parse('I press "{operator}" and expect error "{error_msg}"'))
+def i_press_operator_and_expect_error(operator, error_msg):
+ operator = replace_variables(operator)
+ try:
+ if "(" in operator:
+ exec(f"bpy.ops.{operator}")
+ else:
+ exec(f"bpy.ops.{operator}()")
+ assert False, f"Operator bpy.ops.{operator} ran without exception '{error_msg}'"
+ except Exception as e:
+ actual_error_msg = str(e).strip()
+ if str(e).strip() != error_msg:
+ traceback.print_exc()
+ assert False, f"Got different exception running bpy.ops.{operator} - '{actual_error_msg}' instead of '{error_msg}'"
+
@given(parsers.parse('I press "{operator}"'))
@when(parsers.parse('I press "{operator}"'))
def i_press_operator(operator):
@@ -173,9 +183,9 @@ def i_press_operator(operator):
exec(f"bpy.ops.{operator}")
else:
exec(f"bpy.ops.{operator}()")
- except:
+ except Exception as e:
traceback.print_exc()
- assert False, f"Failed to run operator bpy.ops.{operator}"
+ assert False, f"Failed to run operator bpy.ops.{operator} because of {e}"
@given(parsers.parse('I evaluate expression "{expression}"'))
@@ -590,6 +600,12 @@ def the_object_name_has_a_thickness_thick_layered_material_containing_the_materi
assert is_x(total_thickness, float(thickness))
assert material_name in material_names
+@then(parsers.parse('the object "{name}" has no IFC materials'))
+def the_object_has_no_ifc_materials(name):
+ element = tool.Ifc.get_entity(the_object_name_exists(name))
+ material = ifcopenshell.util.element.get_material(element)
+ assert material is None
+
@then(
parsers.parse(
@@ -672,7 +688,7 @@ def the_object_name_dimensions_are_dimensions(name, dimensions):
actual_dimensions = list(the_object_name_exists(name).dimensions)
expected_dimensions = [float(co) for co in dimensions.split(",")]
for i, number in enumerate(actual_dimensions):
- assert is_x(number, expected_dimensions[i]), f"Expected {actual_dimensions[i]} but got {number}"
+ assert is_x(number, expected_dimensions[i]), f"Expected {expected_dimensions[i]} but got {number}"
@then(parsers.parse('the object "{name}" top right corner is at "{location}"'))
diff --git a/src/blenderbim/test/core/test_drawing.py b/src/blenderbim/test/core/test_drawing.py
index 2b9060c516..2cadacdc26 100644
--- a/src/blenderbim/test/core/test_drawing.py
+++ b/src/blenderbim/test/core/test_drawing.py
@@ -442,7 +442,7 @@ class TestUpdateDrawingName:
drawing.get_drawing_group("drawing").should_be_called().will_return("group")
drawing.get_name("group").should_be_called().will_return("name")
drawing.get_drawing_collection("drawing").should_be_called().will_return("collection")
- drawing.set_drawing_collection_name("group", "collection").should_be_called()
+ drawing.set_drawing_collection_name("drawing", "collection").should_be_called()
drawing.get_drawing_document("drawing").should_be_called().will_return("reference")
drawing.get_reference_document("reference").should_be_called().will_return("information")
@@ -459,7 +459,7 @@ class TestUpdateDrawingName:
drawing.get_name("group").should_be_called().will_return("oldname")
ifc.run("attribute.edit_attributes", product="group", attributes={"Name": "name"}).should_be_called()
drawing.get_drawing_collection("drawing").should_be_called().will_return("collection")
- drawing.set_drawing_collection_name("group", "collection").should_be_called()
+ drawing.set_drawing_collection_name("drawing", "collection").should_be_called()
drawing.get_drawing_document("drawing").should_be_called().will_return("reference")
drawing.get_reference_document("reference").should_be_called().will_return("information")
diff --git a/src/blenderbim/test/core/test_material.py b/src/blenderbim/test/core/test_material.py
index 9b6a30c70b..f931c5f192 100644
--- a/src/blenderbim/test/core/test_material.py
+++ b/src/blenderbim/test/core/test_material.py
@@ -17,7 +17,7 @@
# along with BlenderBIM Add-on. If not, see .
import blenderbim.core.material as subject
-from test.core.bootstrap import ifc, material, style
+from test.core.bootstrap import ifc, material, style, spatial
class TestUnlinkMaterial:
@@ -158,7 +158,7 @@ class TestDisableEditingMaterials:
class TestSelectByMaterial:
- def test_run(self, material):
+ def test_run(self, material, spatial):
material.get_elements_by_material("material").should_be_called().will_return("elements")
- material.select_elements("elements").should_be_called()
- subject.select_by_material(material, material="material")
+ spatial.select_products("elements").should_be_called()
+ subject.select_by_material(material, spatial, material="material")
diff --git a/src/blenderbim/test/core/test_style.py b/src/blenderbim/test/core/test_style.py
index 3ec61bd645..e2bcdbe8fc 100644
--- a/src/blenderbim/test/core/test_style.py
+++ b/src/blenderbim/test/core/test_style.py
@@ -17,7 +17,7 @@
# along with BlenderBIM Add-on. If not, see .
import blenderbim.core.style as subject
-from test.core.bootstrap import ifc, material, style
+from test.core.bootstrap import ifc, material, style, spatial
class TestAddStyle:
@@ -85,22 +85,39 @@ class TestUpdateStyleColours:
def test_updating_rendering_style_if_available(self, ifc, style):
style.get_style("obj").should_be_called().will_return("element")
style.can_support_rendering_style("obj").should_be_called().will_return(True)
- style.get_surface_rendering_style("obj").should_be_called().will_return("style")
- style.get_surface_rendering_attributes("obj").should_be_called().will_return("attributes")
- ifc.run("style.edit_surface_style", style="style", attributes="attributes").should_be_called()
+
+ style.get_surface_rendering_style("obj").should_be_called().will_return("rendering_style")
+ style.get_texture_style("obj").should_be_called().will_return("texture_style")
+ style.get_surface_rendering_attributes("obj", "verbose").should_be_called().will_return("attributes")
+ ifc.run("style.edit_surface_style", style="rendering_style", attributes="attributes").should_be_called()
+
+ ifc.run("style.add_surface_textures", material="obj").should_be_called().will_return("textures")
+ ifc.run("style.edit_surface_style", style="texture_style", attributes={"Textures": "textures"}).should_be_called().will_return("textures")
+
style.record_shading("obj").should_be_called()
- subject.update_style_colours(ifc, style, obj="obj")
+ subject.update_style_colours(ifc, style, obj="obj", verbose="verbose")
def test_adding_a_rendering_style_if_not_available(self, ifc, style):
style.get_style("obj").should_be_called().will_return("element")
style.can_support_rendering_style("obj").should_be_called().will_return(True)
+
style.get_surface_rendering_style("obj").should_be_called().will_return(None)
- style.get_surface_rendering_attributes("obj").should_be_called().will_return("attributes")
+ style.get_texture_style("obj").should_be_called().will_return(None)
+ style.get_surface_rendering_attributes("obj", "verbose").should_be_called().will_return("attributes")
ifc.run(
"style.add_surface_style", style="element", ifc_class="IfcSurfaceStyleRendering", attributes="attributes"
).should_be_called()
+
+ ifc.run("style.add_surface_textures", material="obj").should_be_called().will_return("textures")
+ ifc.run(
+ "style.add_surface_style",
+ style="element",
+ ifc_class="IfcSurfaceStyleWithTextures",
+ attributes={"Textures": "textures"},
+ ).should_be_called()
+
style.record_shading("obj").should_be_called()
- subject.update_style_colours(ifc, style, obj="obj")
+ subject.update_style_colours(ifc, style, obj="obj", verbose="verbose")
def test_updating_shading_style_as_a_fallback_if_available(self, ifc, style):
style.get_style("obj").should_be_called().will_return("element")
@@ -212,3 +229,10 @@ class TestDisableEditingStyles:
def test_run(self, style):
style.disable_editing_styles().should_be_called()
subject.disable_editing_styles(style)
+
+
+class TestSelectByStyle:
+ def test_run(self, style, spatial):
+ style.get_elements_by_style("style").should_be_called().will_return("elements")
+ spatial.select_products("elements").should_be_called()
+ subject.select_by_style(style, spatial, style="style")
diff --git a/src/blenderbim/test/core/test_system.py b/src/blenderbim/test/core/test_system.py
index a27d0f90e5..cabd2d9a68 100644
--- a/src/blenderbim/test/core/test_system.py
+++ b/src/blenderbim/test/core/test_system.py
@@ -18,7 +18,7 @@
import blenderbim.core.system as subject
-from test.core.bootstrap import ifc, system
+from test.core.bootstrap import ifc, system, spatial
class TestLoadSystems:
@@ -91,24 +91,24 @@ class TestSelectSystemProducts:
class TestShowPorts:
- def test_run(self, ifc, system):
+ def test_run(self, ifc, system, spatial):
ifc.get_object("element").should_be_called().will_return("obj")
ifc.is_moved("obj").should_be_called().will_return(False)
system.get_ports("element").should_be_called().will_return(["port"])
system.load_ports("element", ["port"]).should_be_called()
- system.select_elements(["port"]).should_be_called()
- subject.show_ports(ifc, system, element="element")
+ spatial.select_products(["port"]).should_be_called()
+ subject.show_ports(ifc, system, spatial, element="element")
- def test_syncing_locations_if_objects_moved_prior_to_showing_ports(self, ifc, system):
+ def test_syncing_locations_if_objects_moved_prior_to_showing_ports(self, ifc, system, spatial):
ifc.get_object("element").should_be_called().will_return("obj")
ifc.is_moved("obj").should_be_called().will_return(True)
system.run_geometry_edit_object_placement(obj="obj").should_be_called()
system.get_ports("element").should_be_called().will_return(["port"])
system.load_ports("element", ["port"]).should_be_called()
- system.select_elements(["port"]).should_be_called()
- subject.show_ports(ifc, system, element="element")
+ spatial.select_products(["port"]).should_be_called()
+ subject.show_ports(ifc, system, spatial, element="element")
class TestHidePorts:
diff --git a/src/blenderbim/test/tool/test_collector.py b/src/blenderbim/test/tool/test_collector.py
index 0e442f35a2..94e9bee0cc 100644
--- a/src/blenderbim/test/tool/test_collector.py
+++ b/src/blenderbim/test/tool/test_collector.py
@@ -264,29 +264,32 @@ class TestAssign(NewFile):
def test_in_decomposition_mode_drawings_are_placed_in_a_group_in_a_views_collection(self):
bpy.ops.bim.create_project()
- element_obj = bpy.data.objects.new("IfcAnnotation/Name", None)
+ element_obj = bpy.data.objects.new("IfcAnnotation/DRAWING", None)
element = tool.Ifc.get().createIfcAnnotation(ObjectType="DRAWING")
tool.Ifc.link(element, element_obj)
+
group = ifcopenshell.api.run("group.add_group", tool.Ifc.get())
group.ObjectType = "DRAWING"
ifcopenshell.api.run("group.assign_group", tool.Ifc.get(), products=[element], group=group)
+
subject.assign(element_obj)
- assert element_obj.users_collection[0].name == "IfcGroup/Unnamed"
- assert bpy.data.collections.get("Views").children.get("IfcGroup/Unnamed")
+ assert element_obj.users_collection[0].name == "IfcAnnotation/DRAWING"
+ assert bpy.data.collections.get("Views").children.get("IfcAnnotation/DRAWING")
assert bpy.data.collections.get("IfcProject/My Project").children.get("Views")
def test_in_decomposition_mode_annotations_are_placed_in_a_group_in_a_views_collection(self):
- bpy.ops.bim.create_project()
+ self.test_in_decomposition_mode_drawings_are_placed_in_a_group_in_a_views_collection()
+ ifc_file = tool.Ifc.get()
+
element_obj = bpy.data.objects.new("IfcAnnotation/Name", None)
- element = tool.Ifc.get().createIfcAnnotation()
+ element = ifc_file.createIfcAnnotation()
tool.Ifc.link(element, element_obj)
- group = ifcopenshell.api.run("group.add_group", tool.Ifc.get())
- group.ObjectType = "DRAWING"
- ifcopenshell.api.run("group.assign_group", tool.Ifc.get(), products=[element], group=group)
+
+ group = ifc_file.by_type("IfcGroup")[0]
+ ifcopenshell.api.run("group.assign_group", ifc_file, products=[element], group=group)
+
subject.assign(element_obj)
- assert element_obj.users_collection[0].name == "IfcGroup/Unnamed"
- assert bpy.data.collections.get("Views").children.get("IfcGroup/Unnamed")
- assert bpy.data.collections.get("IfcProject/My Project").children.get("Views")
+ assert element_obj.users_collection[0].name == "IfcAnnotation/DRAWING"
def test_in_decomposition_mode_structural_members_are_placed_in_a_members_collection(self):
bpy.ops.bim.create_project()
diff --git a/src/blenderbim/test/tool/test_drawing.py b/src/blenderbim/test/tool/test_drawing.py
index 6e790e6632..86eecc143e 100644
--- a/src/blenderbim/test/tool/test_drawing.py
+++ b/src/blenderbim/test/tool/test_drawing.py
@@ -305,6 +305,9 @@ class TestGetDrawingCollection(NewFile):
collection = bpy.data.collections.new("Collection")
bpy.context.scene.collection.children.link(collection)
collection.objects.link(obj)
+ obj.BIMObjectProperties.collection = collection
+ collection.BIMCollectionProperties.obj = obj
+
element = ifc.createIfcAnnotation()
tool.Ifc.link(element, obj)
assert subject.get_drawing_collection(element) == collection
diff --git a/src/blenderbim/test/tool/test_geometry.py b/src/blenderbim/test/tool/test_geometry.py
index 9608aefbe8..f1e5a6c4b1 100644
--- a/src/blenderbim/test/tool/test_geometry.py
+++ b/src/blenderbim/test/tool/test_geometry.py
@@ -478,7 +478,7 @@ class TestShouldGenerateUVs(NewFile):
obj.data.materials.append(material)
material.use_nodes = True
- bsdf = material.node_tree.nodes["Principled BSDF"]
+ bsdf = tool.Blender.get_material_node(material, "BSDF_PRINCIPLED")
node = material.node_tree.nodes.new(type="ShaderNodeTexImage")
material.node_tree.links.new(bsdf.inputs["Base Color"], node.outputs["Color"])
@@ -494,7 +494,7 @@ class TestShouldGenerateUVs(NewFile):
obj.data.materials.append(material)
material.use_nodes = True
- bsdf = material.node_tree.nodes["Principled BSDF"]
+ bsdf = tool.Blender.get_material_node(material, "BSDF_PRINCIPLED")
node = material.node_tree.nodes.new(type="ShaderNodeTexImage")
material.node_tree.links.new(bsdf.inputs["Base Color"], node.outputs["Color"])
diff --git a/src/blenderbim/test/tool/test_material.py b/src/blenderbim/test/tool/test_material.py
index 794669545b..fa2e7b8b4e 100644
--- a/src/blenderbim/test/tool/test_material.py
+++ b/src/blenderbim/test/tool/test_material.py
@@ -170,14 +170,3 @@ class TestIsMaterialUsedInSets(NewFile):
material_set_item.Material = material
assert subject.is_material_used_in_sets(material) is True
-
-class TestSelectElements(NewFile):
- def test_run(self):
- ifc = ifcopenshell.file()
- tool.Ifc().set(ifc)
- element = ifcopenshell.api.run("root.create_entity", ifc, ifc_class="IfcPump")
- obj = bpy.data.objects.new("Object", None)
- bpy.context.scene.collection.objects.link(obj)
- tool.Ifc.link(element, obj)
- subject.select_elements([element])
- assert obj in bpy.context.selected_objects
diff --git a/src/blenderbim/test/tool/test_project.py b/src/blenderbim/test/tool/test_project.py
index 29e1891858..1cbd4a4cfb 100644
--- a/src/blenderbim/test/tool/test_project.py
+++ b/src/blenderbim/test/tool/test_project.py
@@ -44,7 +44,7 @@ class TestCreateEmpty(NewFile):
class TestLoadDefaultThumbnails(NewFile):
def test_nothing(self):
- pass # Not possible to test this headlessly
+ pass # Not possible to test this headlessly
class TestRunAggregateAssignObject(NewFile):
@@ -93,6 +93,9 @@ class TestSetActiveSpatialElement(NewFile):
collection = bpy.data.collections.new("Foo")
bpy.context.scene.collection.children.link(collection)
collection.objects.link(obj)
+ obj.BIMObjectProperties.collection = collection
+ collection.BIMCollectionProperties.obj = obj
+
layer = bpy.context.view_layer.layer_collection.children["Foo"]
assert bpy.context.view_layer.active_layer_collection != layer
subject.set_active_spatial_element(obj)
diff --git a/src/blenderbim/test/tool/test_spatial.py b/src/blenderbim/test/tool/test_spatial.py
index 9ecb069cd8..7aafc1e882 100644
--- a/src/blenderbim/test/tool/test_spatial.py
+++ b/src/blenderbim/test/tool/test_spatial.py
@@ -257,3 +257,15 @@ class TestSetRelativeObjectMatrix(NewFile):
matrix[0][3] = 1
subject.set_relative_object_matrix(obj, relative_obj, matrix)
assert obj.matrix_world[0][3] == 2
+
+
+class TestSelectProducts(NewFile):
+ def test_select_products(self):
+ ifc = ifcopenshell.file()
+ tool.Ifc.set(ifc)
+ product = ifcopenshell.api.run("root.create_entity", ifc, ifc_class="IfcWall")
+ obj = bpy.data.objects.new("Object", None)
+ bpy.context.scene.collection.objects.link(obj)
+ tool.Ifc.link(product, obj)
+ subject.select_products([product])
+ assert obj in bpy.context.selected_objects
\ No newline at end of file
diff --git a/src/blenderbim/test/tool/test_style.py b/src/blenderbim/test/tool/test_style.py
index 77e59edc55..c6ac04aac0 100644
--- a/src/blenderbim/test/tool/test_style.py
+++ b/src/blenderbim/test/tool/test_style.py
@@ -136,7 +136,7 @@ class TestGetSurfaceRenderingAttributes(NewFile):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
- node = obj.node_tree.nodes["Principled BSDF"]
+ node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
node.inputs["Alpha"].default_value = 0.8
node.inputs["Base Color"].default_value = [0.5, 0.5, 0.5, 0.5]
node.inputs["Roughness"].default_value = 0.2
@@ -163,11 +163,15 @@ class TestGetSurfaceRenderingAttributes(NewFile):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
- node = obj.node_tree.nodes["Principled BSDF"]
+ output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
+ node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
obj.node_tree.nodes.remove(node)
+
node = obj.node_tree.nodes.new(type="ShaderNodeBsdfGlossy")
node.inputs["Color"].default_value = [0.5, 0.5, 0.5, 0.5]
node.inputs["Roughness"].default_value = 0.2
+ obj.node_tree.links.new(node.outputs[0], output.inputs[0])
+
assert subject.get_surface_rendering_attributes(obj) == {
"SurfaceColour": {
"Name": None,
@@ -190,11 +194,15 @@ class TestGetSurfaceRenderingAttributes(NewFile):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
- node = obj.node_tree.nodes["Principled BSDF"]
+ output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
+ node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
obj.node_tree.nodes.remove(node)
+
node = obj.node_tree.nodes.new(type="ShaderNodeBsdfDiffuse")
node.inputs["Color"].default_value = [0.5, 0.5, 0.5, 0.5]
node.inputs["Roughness"].default_value = 0.2
+ obj.node_tree.links.new(node.outputs[0], output.inputs[0])
+
assert subject.get_surface_rendering_attributes(obj) == {
"SurfaceColour": {
"Name": None,
@@ -217,11 +225,15 @@ class TestGetSurfaceRenderingAttributes(NewFile):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
- node = obj.node_tree.nodes["Principled BSDF"]
+ output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
+ node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
obj.node_tree.nodes.remove(node)
+
node = obj.node_tree.nodes.new(type="ShaderNodeBsdfGlass")
node.inputs["Color"].default_value = [0.5, 0.5, 0.5, 0.5]
node.inputs["Roughness"].default_value = 0.2
+ obj.node_tree.links.new(node.outputs[0], output.inputs[0])
+
assert subject.get_surface_rendering_attributes(obj) == {
"SurfaceColour": {
"Name": None,
@@ -244,10 +256,14 @@ class TestGetSurfaceRenderingAttributes(NewFile):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
- node = obj.node_tree.nodes["Principled BSDF"]
+ output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
+ node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
obj.node_tree.nodes.remove(node)
+
node = obj.node_tree.nodes.new(type="ShaderNodeEmission")
node.inputs["Color"].default_value = [0.5, 0.5, 0.5, 0.5]
+ obj.node_tree.links.new(node.outputs[0], output.inputs[0])
+
assert subject.get_surface_rendering_attributes(obj) == {
"SurfaceColour": {
"Name": None,
@@ -270,10 +286,14 @@ class TestGetSurfaceRenderingAttributes(NewFile):
obj = bpy.data.materials.new("Material")
obj.diffuse_color = [1, 1, 1, 1]
obj.use_nodes = True
- node = obj.node_tree.nodes["Principled BSDF"]
+ output = tool.Blender.get_material_node(obj, "OUTPUT_MATERIAL")
+ node = tool.Blender.get_material_node(obj, "BSDF_PRINCIPLED")
obj.node_tree.nodes.remove(node)
+
node = obj.node_tree.nodes.new(type="ShaderNodeVolumePrincipled")
node.inputs["Color"].default_value = [0.5, 0.5, 0.5, 0.5]
+ obj.node_tree.links.new(node.outputs[0], output.inputs[0])
+
assert subject.get_surface_rendering_attributes(obj) == {
"SurfaceColour": {
"Name": None,
@@ -440,15 +460,3 @@ class TestIsEditingStyles(NewFile):
subject.is_editing_styles() is False
bpy.context.scene.BIMStylesProperties.is_editing = True
subject.is_editing_styles() is True
-
-
-class TestSelectElements(NewFile):
- def test_run(self):
- ifc = ifcopenshell.file()
- tool.Ifc().set(ifc)
- element = ifcopenshell.api.run("root.create_entity", ifc, ifc_class="IfcPump")
- obj = bpy.data.objects.new("Object", None)
- bpy.context.scene.collection.objects.link(obj)
- tool.Ifc.link(element, obj)
- subject.select_elements([element])
- assert obj in bpy.context.selected_objects
diff --git a/src/blenderbim/test/tool/test_system.py b/src/blenderbim/test/tool/test_system.py
index 4105c72530..2b23513f05 100644
--- a/src/blenderbim/test/tool/test_system.py
+++ b/src/blenderbim/test/tool/test_system.py
@@ -196,18 +196,6 @@ class TestRunRootAssignClass(NewFile):
pass
-class TestSelectElements(NewFile):
- def test_run(self):
- ifc = ifcopenshell.file()
- tool.Ifc().set(ifc)
- element = ifcopenshell.api.run("root.create_entity", ifc, ifc_class="IfcPump")
- obj = bpy.data.objects.new("Object", None)
- bpy.context.scene.collection.objects.link(obj)
- tool.Ifc.link(element, obj)
- subject.select_elements([element])
- assert obj in bpy.context.selected_objects
-
-
class TestSelectSystemProducts(NewFile):
def test_run(self):
ifc = ifcopenshell.file()
diff --git a/src/bsdd/CITATION.cff b/src/bsdd/CITATION.cff
new file mode 100644
index 0000000000..cc86d33007
--- /dev/null
+++ b/src/bsdd/CITATION.cff
@@ -0,0 +1,18 @@
+# This CITATION.cff file was generated with cffinit.
+# Visit https://bit.ly/cffinit to generate yours today!
+
+cff-version: 1.2.0
+title: bsdd
+message: >-
+ If you use this software, please cite it using the
+ metadata from this file.
+type: software
+authors:
+ - name: "IfcOpenShell contributors"
+repository-code: >-
+ https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/bsdd
+abstract: Library to query the bSDD API
+keywords:
+ - bSDD
+ - IFC
+license: LGPL-3.0-or-later
diff --git a/src/ifc2ca/CITATION.cff b/src/ifc2ca/CITATION.cff
new file mode 100644
index 0000000000..18ff8e0bed
--- /dev/null
+++ b/src/ifc2ca/CITATION.cff
@@ -0,0 +1,21 @@
+# This CITATION.cff file was generated with cffinit.
+# Visit https://bit.ly/cffinit to generate yours today!
+
+cff-version: 1.2.0
+title: ifc2ca
+message: >-
+ If you use this software, please cite it using the
+ metadata from this file.
+type: software
+authors:
+ - name: "IfcOpenShell contributors"
+repository-code: >-
+ https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/ifc2ca
+abstract: >-
+ Utility to convert IFC structural analysis models to
+ Code_Aster
+keywords:
+ - Code_Aster
+ - IFC
+ - Structural analysis
+license: LGPL-3.0-or-later
diff --git a/src/ifc4d/CITATION.cff b/src/ifc4d/CITATION.cff
new file mode 100644
index 0000000000..d987e70474
--- /dev/null
+++ b/src/ifc4d/CITATION.cff
@@ -0,0 +1,18 @@
+# This CITATION.cff file was generated with cffinit.
+# Visit https://bit.ly/cffinit to generate yours today!
+
+cff-version: 1.2.0
+title: ifc4d
+message: >-
+ If you use this software, please cite it using the
+ metadata from this file.
+type: software
+authors:
+ - name: "IfcOpenShell contributors"
+repository-code: >-
+ https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/ifc4d
+abstract: Convert to and from IFC and project management software
+keywords:
+ - IFC
+ - 4D
+license: LGPL-3.0-or-later
diff --git a/src/ifc5d/CITATION.cff b/src/ifc5d/CITATION.cff
new file mode 100644
index 0000000000..eb1c85b369
--- /dev/null
+++ b/src/ifc5d/CITATION.cff
@@ -0,0 +1,18 @@
+# This CITATION.cff file was generated with cffinit.
+# Visit https://bit.ly/cffinit to generate yours today!
+
+cff-version: 1.2.0
+title: ifc5d
+message: >-
+ If you use this software, please cite it using the
+ metadata from this file.
+type: software
+authors:
+ - name: "IfcOpenShell contributors"
+repository-code: >-
+ https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/ifc5d
+abstract: Report and optimise cost information from IFC
+keywords:
+ - IFC
+ - 5D
+license: LGPL-3.0-or-later
diff --git a/src/ifcbimtester/CITATION.cff b/src/ifcbimtester/CITATION.cff
new file mode 100644
index 0000000000..d2d6ca6abb
--- /dev/null
+++ b/src/ifcbimtester/CITATION.cff
@@ -0,0 +1,19 @@
+# This CITATION.cff file was generated with cffinit.
+# Visit https://bit.ly/cffinit to generate yours today!
+
+cff-version: 1.2.0
+title: BIMTester
+message: >-
+ If you use this software, please cite it using the
+ metadata from this file.
+type: software
+authors:
+ - name: "IfcOpenShell contributors"authors:
+repository-code: >-
+ https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/ifcbimtester
+url: 'https://blenderbim.org/docs-python/bimtester.html'
+abstract: Wrapper for Gherkin based unit testing for IFC models
+keywords:
+ - Gherkin
+ - IFC
+license: LGPL-3.0-or-later
diff --git a/src/ifcblender/io_import_scene_ifc/__init__.py b/src/ifcblender/io_import_scene_ifc/__init__.py
index a182af1c92..2c3aaf1e26 100644
--- a/src/ifcblender/io_import_scene_ifc/__init__.py
+++ b/src/ifcblender/io_import_scene_ifc/__init__.py
@@ -176,7 +176,8 @@ def import_ifc(filename, use_names, process_relations, blender_booleans):
mat.use_screen_refraction = True
mat.refraction_depth = 0.1
mat.use_nodes = True
- mat.node_tree.nodes["Principled BSDF"].inputs[15].default_value = v
+ bsdf = next(n for n in mat.node_tree.nodes if n.type == "BSDF_PRINCIPLED")
+ bsdf.inputs[15].default_value = v
else:
setattr(mat, k, v)
me.materials.append(mat)
diff --git a/src/ifccityjson/.gitignore b/src/ifccityjson/.gitignore
new file mode 100644
index 0000000000..6bca1f6d5e
--- /dev/null
+++ b/src/ifccityjson/.gitignore
@@ -0,0 +1,2 @@
+*.egg-info
+build
\ No newline at end of file
diff --git a/src/ifccityjson/README.md b/src/ifccityjson/README.md
index 4d2d537345..5bca24f4bd 100644
--- a/src/ifccityjson/README.md
+++ b/src/ifccityjson/README.md
@@ -3,7 +3,7 @@ Converter for CityJSON files and IFC. Currently only supports one-way conversion
## Dependencies
- [IfcOpenShell](https://github.com/IfcOpenShell/IfcOpenShell) (also IfcOpenShell api is needed)
-- [CJIO](https://github.com/cityjson/cjio)
+- [CJIO](https://github.com/cityjson/cjio) (>=0.8, <1.0)
## Usage of IFCCityJSON
An extended ifccityjson tutorial can be found on [the OSARCH wiki](https://wiki.osarch.org/index.php?title=Ifccityjson)
diff --git a/src/ifccityjson/__init__.py b/src/ifccityjson/ifccityjson/__init__.py
similarity index 100%
rename from src/ifccityjson/__init__.py
rename to src/ifccityjson/ifccityjson/__init__.py
diff --git a/src/ifccityjson/cityjson2ifc/__init__.py b/src/ifccityjson/ifccityjson/cityjson2ifc/__init__.py
similarity index 97%
rename from src/ifccityjson/cityjson2ifc/__init__.py
rename to src/ifccityjson/ifccityjson/cityjson2ifc/__init__.py
index ccae140c39..71bcf23e7a 100644
--- a/src/ifccityjson/cityjson2ifc/__init__.py
+++ b/src/ifccityjson/ifccityjson/cityjson2ifc/__init__.py
@@ -1,4 +1,3 @@
-
# ifccityjson - Python CityJSON to IFC converter
# Copyright (C) 2021 Laurens J.N. Oostwegel
#
@@ -16,5 +15,5 @@
#
# You should have received a copy of the GNU Lesser General Public License
# along with ifccityjson. If not, see .
-
+__version__ = "0.1.0"
from .cityjson2ifc import *
\ No newline at end of file
diff --git a/src/ifccityjson/cityjson2ifc/cityjson2ifc.py b/src/ifccityjson/ifccityjson/cityjson2ifc/cityjson2ifc.py
similarity index 83%
rename from src/ifccityjson/cityjson2ifc/cityjson2ifc.py
rename to src/ifccityjson/ifccityjson/cityjson2ifc/cityjson2ifc.py
index d9128e074c..80d275ee25 100644
--- a/src/ifccityjson/cityjson2ifc/cityjson2ifc.py
+++ b/src/ifccityjson/ifccityjson/cityjson2ifc/cityjson2ifc.py
@@ -1,5 +1,6 @@
# ifccityjson - Python CityJSON to IFC converter
# Copyright (C) 2021 Laurens J.N. Oostwegel
+# Copyright (C) 2023 Balázs Dukai
#
# This file is part of ifccityjson.
#
@@ -22,14 +23,20 @@ import ifcopenshell.api
from datetime import datetime
from .geometry import GeometryIO
+from . import __version__
JSON_TO_IFC = {
"Building": ["IfcBuilding"],
"BuildingPart": ["IfcBuilding", {"CompositionType": "PARTIAL"}],
"BuildingInstallation": ["IfcBuildingElementProxy"],
+ "BuildingConstructiveElement": ["IfcBuildingElementProxy"],
+ "BuildingFurniture": ["IfcFurniture"],
+ "BuildingStorey": ["IfcBuildingStorey", {"CompositionType": "PARTIAL"}],
+ "BuildingRoom": ["IfcSpace", {"CompositionType": "ELEMENT"}],
+ "BuildingUnit": ["IfcSpace", {"CompositionType": "ELEMENT"}],
"Road": ["IfcCivilElement"], # Update for IFC4.3
"Railway": ["IfcCivilElement"], # Update for IFC4.3
- "TransportSquare": ["IfcCivilElement"], # Update for IFC4.3
+ "TransportationSquare": ["IfcCivilElement"], # Update for IFC4.3
"TINRelief": ["IfcGeographicElement", {"PredefinedType": "TERRAIN"}],
"WaterBody": ["IfcGeographicElement", {"PredefinedType": "USERDEFINED",
"ObjectType": "WaterBody"}], # Update for IFC4.3
@@ -40,14 +47,20 @@ JSON_TO_IFC = {
"SolitaryVegetationObject": ["IfcGeographicElement", {"PredefinedType": "USERDEFINED",
"ObjectType": "SolitaryVegetationObject"}],
"CityFurniture": ["IfcFurnishingElement"],
- "GenericCityObject": ["IfcCivilElement"],
+ "OtherConstruction": ["IfcCivilElement"],
+ "+GenericCityObject": ["IfcCivilElement"], # We make an exception here, because GenericCityObject is a remnant from CityJSON v1.0, which was moved to an extension in v1.1 and it is commonly used.
"Bridge": ["IfcCivilElement"], # Update for IFC4.3
"BridgePart": ["IfcCivilElement"], # Update for IFC4.3
"BridgeInstallation": ["IfcCivilElement"], # Update for IFC4.3
- "BridgeConstructionElement": ["IfcCivilElement"], # Update for IFC4.3
+ "BridgeConstructiveElement": ["IfcCivilElement"], # Update for IFC4.3
+ "BridgeRoom": ["IfcCivilElement"], # Update for IFC4.3
+ "BridgeFurniture": ["IfcCivilElement"], # Update for IFC4.3
"Tunnel": ["IfcCivilElement"], # Update for IFC4.3
"TunnelPart": ["IfcCivilElement"], # Update for IFC4.3
"TunnelInstallation": ["IfcCivilElement"], # Update for IFC4.3
+ "TunnelConstructiveElement": ["IfcCivilElement"], # Update for IFC4.3
+ "TunnelHollowSpace": ["IfcCivilElement"], # Update for IFC4.3
+ "TunnelFurniture": ["IfcCivilElement"], # Update for IFC4.3
"CityObjectGroup": ["IfcBuilding"], # Update for IFC4.3
"GroundSurface": ["IfcSlab", {"PredefinedType": "BASESLAB"}],
"RoofSurface": ["IfcRoof"],
@@ -57,6 +70,9 @@ JSON_TO_IFC = {
"OuterFloorSurface": ["IfcSlab", {"PredefinedType": "FLOOR"}],
"Window": ["IfcWindow"],
"Door": ["IfcDoor"],
+ "InteriorWallSurface": ["IfcWall"],
+ "CeilingSurface": ["IfcCovering", {"PredefinedType": "CEILING"}],
+ "FloorSurface": ["IfcSlab", {"PredefinedType": "FLOOR"}],
"WaterSurface": ["IfcGeographicElement", {"PredefinedType": "USERDEFINED",
"ObjectType": "WaterSurface"}], # Update for IFC4.3
"WaterGroundSurface": ["IfcGeographicElement", {"PredefinedType": "USERDEFINED",
@@ -64,7 +80,9 @@ JSON_TO_IFC = {
"WaterClosureSurface": ["IfcGeographicElement", {"PredefinedType": "USERDEFINED",
"ObjectType": "WaterClosureSurface"}], # Update for IFC4.3
"TrafficArea": ["IfcCivilElement"], # Update for IFC4.3
- "AuxiliaryTrafficArea": ["IfcCivilElement"] # Update for IFC4.3
+ "AuxiliaryTrafficArea": ["IfcCivilElement"], # Update for IFC4.3
+ "TransportationMarking": ["IfcCivilElement"], # Update for IFC4.3
+ "TransportationHole": ["IfcCivilElement"], # Update for IFC4.3
}
@@ -76,11 +94,17 @@ class Cityjson2ifc:
self.geometry = GeometryIO()
self.configuration()
- def configuration(self, file_destination="output.ifc", name_attribute=None, split=True, lod=None):
+ def configuration(self, file_destination="output.ifc", name_attribute=None,
+ split=True, lod=None, name_project=None, name_site=None,
+ name_person_family=None, name_person_given=None):
self.properties["file_destination"], self.properties["file_extension"] = os.path.splitext(file_destination)
self.properties["name_attribute"] = name_attribute
self.properties["split"] = split
self.properties["lod"] = lod
+ self.properties["name_project"] = name_project
+ self.properties["name_site"] = name_site
+ self.properties["name_person_family"] = name_person_family
+ self.properties["name_person_given"] = name_person_given
def convert(self, city_model):
self.city_model = city_model
@@ -103,9 +127,9 @@ class Cityjson2ifc:
# Georeferencing
self.properties["local_translation"] = None
self.properties["local_scale"] = None
- if self.city_model.is_transform():
- self.properties["local_scale"] = self.city_model.j['transform']['scale']
- local_translation = self.city_model.j['transform']['translate']
+ if not self.city_model.is_transformed:
+ self.properties["local_scale"] = self.city_model.transform['scale']
+ local_translation = self.city_model.transform['translate']
self.properties["local_translation"] = {
"Eastings": local_translation[0],
"Northings": local_translation[1],
@@ -122,11 +146,11 @@ class Cityjson2ifc:
def create_new_file(self):
self.IFC_model = ifcopenshell.api.run("project.create_file")
- self.IFC_project = ifcopenshell.api.run("root.create_entity", self.IFC_model, **{"ifc_class": "IfcProject", "name": "My Project"})
+ self.IFC_project = ifcopenshell.api.run("root.create_entity", self.IFC_model, **{"ifc_class": "IfcProject", "name": self.properties.get("name_project", "My Project")})
ifcopenshell.api.run("unit.assign_unit", self.IFC_model, length={"is_metric": True, "raw": "METERS"})
self.properties["owner_history"] = self.create_owner_history()
self.IFC_representation_context = ifcopenshell.api.run("context.add_context", self.IFC_model,
- **{"context": "Model"})
+ **{"context_type": "Model"})
if not self.city_model.has_metadata() or "presentLoDs" not in self.city_model.j["metadata"]:
self.city_model.update_metadata()
@@ -136,7 +160,7 @@ class Cityjson2ifc:
self.IFC_site = ifcopenshell.api.run("root.create_entity", self.IFC_model,
**{"ifc_class": "IfcSite",
- "name": "My Site"})
+ "name": self.properties.get("name_site", "My Site")})
self.IFC_model.create_entity("IfcRelAggregates",
**{"GlobalId": ifcopenshell.guid.new(),
"RelatedObjects": [self.IFC_site],
@@ -159,18 +183,21 @@ class Cityjson2ifc:
"ContextIdentifier": "Body",
"TargetView": "USERDEFINED",
"ParentContext": self.IFC_representation_context,
- "UserDefinedTargetView": "LOD" + str(lod)})
+ "UserDefinedTargetView": "LOD" + lod})
def create_owner_history(self):
actor = self.IFC_model.createIfcActorRole("ENGINEER", None, None)
- person = self.IFC_model.createIfcPerson("Oostwegel", None, "L.J.N.", None, None, None, (actor,))
+ person = self.IFC_model.createIfcPerson(
+ self.properties.get("name_person_family", "FamilyName"),
+ self.properties.get("name_person_given", "GivenName"),
+ None, None, None, None, (actor,))
organization = self.IFC_model.createIfcOrganization(
None,
"IfcOpenShell",
"IfcOpenShell, an open source (LGPL) software library that helps users and software developers to work with the IFC file format.",
)
p_o = self.IFC_model.createIfcPersonAndOrganization(person, organization)
- application = self.IFC_model.createIfcApplication(organization, "v0.0.x", "ifccityjson", "ifccityjson")
+ application = self.IFC_model.createIfcApplication(organization, __version__, "ifccityjson", "ifccityjson")
timestamp = int(datetime.now().timestamp())
ownerHistory = self.IFC_model.createIfcOwnerHistory(p_o, application, "READWRITE", None, None, None, None,
timestamp)
@@ -211,7 +238,11 @@ class Cityjson2ifc:
geometries = {}
for obj_id, obj in self.city_model.get_cityobjects().items():
# CityJSON type to class
- mapping = JSON_TO_IFC[obj.type]
+ try:
+ mapping = JSON_TO_IFC[obj.type]
+ except KeyError:
+ # skip CityObject types that are not supported, eg. from extensions
+ continue
IFC_class = mapping[0]
data = {}
# Add attributes if it is specified in mapping
@@ -231,10 +262,10 @@ class Cityjson2ifc:
IFC_shape_representations = []
for geometry in obj.geometry:
lod = geometry.lod
- if self.properties["lod"] is not None and str(lod) != self.properties["lod"]:
+ if self.properties["lod"] is not None and lod != self.properties["lod"]:
continue
- if str(lod) not in self.IFC_representation_sub_contexts:
- self.IFC_representation_sub_contexts[str(lod)] = self.create_representation_sub_context(lod)
+ if lod not in self.IFC_representation_sub_contexts:
+ self.IFC_representation_sub_contexts[lod] = self.create_representation_sub_context(lod)
IFC_geometry, shape_representation_type = None, None
@@ -310,7 +341,7 @@ class Cityjson2ifc:
IFC_geometry = [IFC_geometry]
shape_representation = self.IFC_model.create_entity("IfcShapeRepresentation",
- self.IFC_representation_sub_contexts[str(lod)], 'Body',
+ self.IFC_representation_sub_contexts[lod], 'Body',
shape_representation_type,
IFC_geometry)
return shape_representation
diff --git a/src/ifccityjson/cityjson2ifc/geometry.py b/src/ifccityjson/ifccityjson/cityjson2ifc/geometry.py
similarity index 100%
rename from src/ifccityjson/cityjson2ifc/geometry.py
rename to src/ifccityjson/ifccityjson/cityjson2ifc/geometry.py
diff --git a/src/ifccityjson/ifccityjson.py b/src/ifccityjson/ifccityjson/ifccityjson.py
similarity index 100%
rename from src/ifccityjson/ifccityjson.py
rename to src/ifccityjson/ifccityjson/ifccityjson.py
diff --git a/src/ifccityjson/pyproject.toml b/src/ifccityjson/pyproject.toml
new file mode 100644
index 0000000000..30b154c9f7
--- /dev/null
+++ b/src/ifccityjson/pyproject.toml
@@ -0,0 +1,25 @@
+[build-system]
+requires = ["setuptools>=61.0"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "ifccityjson"
+version = "0.1.0"
+authors = [
+ { name = "Laurens J.N. Oostwegel", email = "l.oostwegel@gmail.com" },
+ { name = "Balázs Dukai", email = "balazs.dukai@3dgi.nl" },
+]
+description = "Converter for CityJSON files and IFC"
+readme = "README.md"
+keywords = ["IFC", "CityJSON"]
+classifiers = [
+ "Programming Language :: Python :: 3",
+ "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
+]
+dependencies = [
+ "ifcopenshell>=0.7",
+ "cjio>=0.8"
+]
+[project.urls]
+"Homepage" = "http://ifcopenshell.org"
+"Bug Tracker" = "https://github.com/ifcopenshell/ifcopenshell/issues"
diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp
index c2dc67c7e8..fcf7afc7f6 100644
--- a/src/ifcconvert/IfcConvert.cpp
+++ b/src/ifcconvert/IfcConvert.cpp
@@ -34,6 +34,7 @@
#include "../serializers/WavefrontObjSerializer.h"
#include "../serializers/XmlSerializer.h"
#include "../serializers/SvgSerializer.h"
+#include "../serializers/USDSerializer.h"
#include "../ifcgeom_schema_agnostic/IfcGeomFilter.h"
#include "../ifcgeom_schema_agnostic/IfcGeomIterator.h"
@@ -101,6 +102,9 @@ void print_usage(bool suggest_help = true)
#endif
#ifdef WITH_GLTF
<< " .glb glTF Binary glTF v2.0\n"
+#endif
+#ifdef WITH_USD
+ << " .usd USD Universal Scene Description\n"
#endif
<< " .stp STEP Standard for the Exchange of Product Data\n"
<< " .igs IGES Initial Graphics Exchange Specification\n"
@@ -410,6 +414,8 @@ int main(int argc, char** argv) {
"Stores name and guid in a separate namespace as opposed to data-name, data-guid")
("svg-poly",
"Uses the polygonal algorithm for hidden line rendering")
+ ("svg-prefilter",
+ "Prefilter faces and shapes before feeding to HLR algorithm")
("svg-write-poly",
"Approximate every curve as polygonal in SVG output")
("svg-project",
@@ -707,7 +713,10 @@ int main(int argc, char** argv) {
CACHE = IfcUtil::path::from_utf8(".cache"),
HDF = IfcUtil::path::from_utf8(".h5"),
XML = IfcUtil::path::from_utf8(".xml"),
- IFC = IfcUtil::path::from_utf8(".ifc");
+ IFC = IfcUtil::path::from_utf8(".ifc"),
+ USD = IfcUtil::path::from_utf8(".usd"),
+ USDA = IfcUtil::path::from_utf8(".usda"),
+ USDC = IfcUtil::path::from_utf8(".usdc");
// @todo clean up serializer selection
// @todo detect program options that conflict with the chosen serializer
@@ -850,6 +859,10 @@ int main(int argc, char** argv) {
#ifdef WITH_GLTF
} else if (output_extension == GLB) {
serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings);
+#endif
+#ifdef WITH_USD
+ } else if (output_extension == USD || output_extension == USDA || output_extension == USDC) {
+ serializer = boost::make_shared(IfcUtil::path::to_utf8(output_filename), settings);
#endif
} else if (output_extension == STP) {
serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings);
@@ -1071,6 +1084,7 @@ int main(int argc, char** argv) {
}
static_cast(serializer.get())->setUseNamespace(vmap.count("svg-xmlns") > 0);
static_cast(serializer.get())->setUseHlrPoly(vmap.count("svg-poly") > 0);
+ static_cast(serializer.get())->setUsePrefiltering(vmap.count("svg-prefilter") > 0);
static_cast(serializer.get())->setPolygonal(vmap.count("svg-write-poly") > 0);
static_cast(serializer.get())->setAlwaysProject(vmap.count("svg-project") > 0);
static_cast(serializer.get())->setWithoutStoreys(vmap.count("svg-without-storeys") > 0);
@@ -1173,9 +1187,17 @@ int main(int argc, char** argv) {
Logger::Message(Logger::LOG_PERF, "done file geometry conversion");
- // Renaming might fail (e.g. maybe the existing file was open in a viewer application)
- // Do not remove the temp file as user can salvage the conversion result from it.
- bool successful = IfcUtil::path::rename_file(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(output_filename));
+ bool successful;
+ if(output_extension == USD || output_extension == USDC || output_extension == USDA) {
+ // No need to rename the file
+ successful = true;
+ }
+ else {
+ // Renaming might fail (e.g. maybe the existing file was open in a viewer application)
+ // Do not remove the temp file as user can salvage the conversion result from it.
+ successful = IfcUtil::path::rename_file(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(output_filename));
+ }
+
if (!successful) {
cerr_ << "Unable to write output file '" << output_filename << "', see '" <<
output_temp_filename << "' for the conversion result.";
diff --git a/src/ifccsv/ifccsv.py b/src/ifccsv/ifccsv.py
index e415f4bad2..6497fe3671 100755
--- a/src/ifccsv/ifccsv.py
+++ b/src/ifccsv/ifccsv.py
@@ -42,6 +42,12 @@ except:
pass # No XLSX support
+try:
+ import pandas as pd
+except:
+ pass # No Pandas support
+
+
class IfcAttributeSetter:
@staticmethod
def set_element_key(ifc_file, element, key, value):
@@ -139,15 +145,14 @@ class IfcAttributeSetter:
class IfcCsv:
- def __init__(self):
+ def __init__(self, output="", delimiter=","):
+ self.headers = []
self.results = []
- self.attributes = []
- self.output = ""
- self.format = "csv"
- self.delimiter = ","
+ self.dataframe = None
- def export(self, ifc_file, elements):
+ def export(self, ifc_file, elements, attributes, output=None, format=None, delimiter=","):
self.ifc_file = ifc_file
+ self.results = []
for element in elements:
result = []
if hasattr(element, "GlobalId"):
@@ -155,33 +160,35 @@ class IfcCsv:
else:
result.append(None)
- for index, attribute in enumerate(self.attributes):
+ for index, attribute in enumerate(attributes or []):
if "*" in attribute:
- self.attributes.extend(self.get_wildcard_attributes(attribute))
- del self.attributes[index]
+ attributes.extend(self.get_wildcard_attributes(attribute))
+ del attributes[index]
- for attribute in self.attributes:
+ for attribute in attributes:
result.append(ifcopenshell.util.selector.get_element_value(element, attribute))
self.results.append(result)
self.headers = ["GlobalId"]
- self.headers.extend(self.attributes)
+ self.headers.extend(attributes or [])
- if self.format == "csv":
- self.export_csv()
- elif self.format == "ods":
- self.export_ods()
- elif self.format == "xlsx":
- self.export_xlsx()
+ if format == "csv":
+ self.export_csv(output, delimiter=delimiter)
+ elif format == "ods":
+ self.export_ods(output)
+ elif format == "xlsx":
+ self.export_xlsx(output)
+ elif format == "pd":
+ return self.export_pd()
- def export_csv(self):
- with open(self.output, "w", newline="", encoding="utf-8") as f:
- writer = csv.writer(f, delimiter=self.delimiter)
+ def export_csv(self, output, delimiter=None):
+ with open(output, "w", newline="", encoding="utf-8") as f:
+ writer = csv.writer(f, delimiter=delimiter)
writer.writerow(self.headers)
for row in self.results:
writer.writerow(row)
- def export_ods(self):
+ def export_ods(self, output):
self.doc = OpenDocumentSpreadsheet()
self.colours = {
@@ -218,12 +225,12 @@ class IfcCsv:
table.addElement(tr)
self.doc.spreadsheet.addElement(table)
- if self.output[-4:].lower() == ".ods":
- self.output = self.output[0:-4]
- self.doc.save(self.output, True)
+ if output[-4:].lower() == ".ods":
+ output = output[0:-4]
+ self.doc.save(output, True)
- def export_xlsx(self):
- self.workbook = Workbook(self.output)
+ def export_xlsx(self, output):
+ self.workbook = Workbook(output)
self.colours = {
"h": "dc8774", # Header
@@ -254,6 +261,10 @@ class IfcCsv:
self.workbook.close()
+ def export_pd(self):
+ self.dataframe = pd.DataFrame(self.results, columns=self.headers)
+ return self.dataframe
+
def get_wildcard_attributes(self, attribute):
results = set()
pset_qto_name = attribute.split(".", 1)[0]
@@ -266,9 +277,10 @@ class IfcCsv:
results.update([p.Name for p in element.Quantities])
return ["{}.{}".format(pset_qto_name, n) for n in results]
- def Import(self, ifc_file):
- with open(self.output, newline="", encoding="utf-8") as f:
- reader = csv.reader(f, delimiter=self.delimiter)
+ def Import(self, ifc_file, table, delimiter=","):
+ # Currently only supports CSV.
+ with open(table, newline="", encoding="utf-8") as f:
+ reader = csv.reader(f, delimiter=delimiter)
headers = []
for row in reader:
if not headers:
@@ -303,18 +315,11 @@ if __name__ == "__main__":
if args.export:
ifc_file = ifcopenshell.open(args.ifc)
- selector = ifcopenshell.util.selector.Selector()
- results = selector.parse(ifc_file, args.query)
+ results = ifcopenshell.util.selector.Selector.parse(ifc_file, args.query)
ifc_csv = IfcCsv()
- ifc_csv.output = args.spreadsheet
- ifc_csv.format = args.format
- ifc_csv.attributes = args.arguments if args.arguments else []
- ifc_csv.selector = selector
- ifc_csv.export(ifc_file, results)
+ ifc_csv.export(ifc_file, results, args.arguments or [], output=args.spreadsheet, format=args.format)
elif getattr(args, "import"):
ifc_csv = IfcCsv()
- ifc_csv.output = args.spreadsheet
- ifc_csv.format = args.format
ifc_file = ifcopenshell.open(args.ifc)
- ifc_csv.Import(ifc_file)
+ ifc_csv.Import(ifc_file, args.spreadsheet)
ifc_file.write(args.ifc)
diff --git a/src/ifcgeom/IfcBooleanResult.cpp b/src/ifcgeom/IfcBooleanResult.cpp
index 5e8bd7c2fd..c342d9be78 100644
--- a/src/ifcgeom/IfcBooleanResult.cpp
+++ b/src/ifcgeom/IfcBooleanResult.cpp
@@ -46,7 +46,7 @@ namespace {
}
TopoDS_Shape intermediate_result;
- if (IfcGeom::util::boolean_operation(bst, result, opening_list, BOPAlgo_CUT, intermediate_result)) {
+ if (IfcGeom::util::boolean_operation(bst, result, opening_list, occ_op, intermediate_result)) {
result = intermediate_result;
} else {
return false;
diff --git a/src/ifcgeom/IfcCompositeCurve.cpp b/src/ifcgeom/IfcCompositeCurve.cpp
index 0af611ef30..1986ac80cc 100644
--- a/src/ifcgeom/IfcCompositeCurve.cpp
+++ b/src/ifcgeom/IfcCompositeCurve.cpp
@@ -215,11 +215,17 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcCompositeCurve* l, TopoDS_Wire
V1.Normalize();
V2.Normalize();
+ V2.Reverse();
+
+ if (edges.First().Orientation() == TopAbs_REVERSED) {
+ V1.Reverse();
+ }
+ if (edges.Last().Orientation() == TopAbs_REVERSED) {
+ V2.Reverse();
+ }
auto ang = std::acos(V1.Dot(V2));
- Logger::Notice(std::to_string(ang));
-
if (ang < 0.0314) {
edges_to_tesselate.Add(crv1->DynamicType() == STANDARD_TYPE(Geom_Circle) ? edges.First() : edges.Last());
Logger::Notice("Sharp circular corner detecting, substituting with linear approximation");
diff --git a/src/ifcgeom/IfcGeom.cpp b/src/ifcgeom/IfcGeom.cpp
index a489d3caf9..d0f17a46c8 100644
--- a/src/ifcgeom/IfcGeom.cpp
+++ b/src/ifcgeom/IfcGeom.cpp
@@ -554,17 +554,26 @@ const IfcSchema::IfcMaterial* IfcGeom::Kernel::get_single_material_association(c
IfcSchema::IfcMaterial* single_material = 0;
IfcSchema::IfcRelAssociatesMaterial::list::ptr associated_materials = product->HasAssociations()->as();
if (associated_materials->size() == 1) {
- IfcSchema::IfcMaterialSelect* associated_material = (*associated_materials->begin())->RelatingMaterial();
- single_material = associated_material->as();
- // NB: IfcMaterialLayerSets are also considered, regardless of --enable-layerset-slicing. Picking
- // the first material (in accordance with other viewers) when layerset-slicing is disabled.
- if (!single_material && associated_material->as()) {
- IfcSchema::IfcMaterialLayerSet* layerset = associated_material->as()->ForLayerSet();
- if (getValue(GV_LAYERSET_FIRST) > 0.0 ? layerset->MaterialLayers()->size() >= 1 : layerset->MaterialLayers()->size() == 1) {
- IfcSchema::IfcMaterialLayer* layer = (*layerset->MaterialLayers()->begin());
- if (layer->Material()) {
- single_material = layer->Material();
+ IfcSchema::IfcMaterialSelect* associated_material = nullptr;
+
+ try {
+ associated_material = (*associated_materials->begin())->RelatingMaterial();
+ } catch(IfcParse::IfcException& e) {
+ Logger::Error(e.what());
+ }
+
+ if (associated_material) {
+ single_material = associated_material->as();
+ // NB: IfcMaterialLayerSets are also considered, regardless of --enable-layerset-slicing. Picking
+ // the first material (in accordance with other viewers) when layerset-slicing is disabled.
+ if (!single_material && associated_material->as()) {
+ IfcSchema::IfcMaterialLayerSet* layerset = associated_material->as()->ForLayerSet();
+ if (getValue(GV_LAYERSET_FIRST) > 0.0 ? layerset->MaterialLayers()->size() >= 1 : layerset->MaterialLayers()->size() == 1) {
+ IfcSchema::IfcMaterialLayer* layer = (*layerset->MaterialLayers()->begin());
+ if (layer->Material()) {
+ single_material = layer->Material();
+ }
}
}
}
@@ -976,13 +985,13 @@ std::pair IfcGeom::Kernel::initializeUnits(IfcSchema::IfcUn
bool length_unit_encountered = false, angle_unit_encountered = false;
try {
- aggregate_of_instance::ptr units = unit_assignment->Units();
+ auto units = unit_assignment->Units();
if (!units || !units->size()) {
Logger::Warning("No unit information found");
} else {
- for (aggregate_of_instance::it it = units->begin(); it != units->end(); ++it) {
- IfcUtil::IfcBaseClass* base = *it;
- if (base->declaration().is(IfcSchema::IfcNamedUnit::Class())) {
+ for (auto it = units->begin(); it != units->end(); ++it) {
+ IfcSchema::IfcUnit* base = *it;
+ if (base->as()) {
IfcSchema::IfcNamedUnit* named_unit = base->as();
if (named_unit->UnitType() == IfcSchema::IfcUnitEnum::IfcUnit_LENGTHUNIT ||
named_unit->UnitType() == IfcSchema::IfcUnitEnum::IfcUnit_PLANEANGLEUNIT)
@@ -990,10 +999,10 @@ std::pair IfcGeom::Kernel::initializeUnits(IfcSchema::IfcUn
std::string current_unit_name;
const double current_unit_magnitude = IfcParse::get_SI_equivalent(named_unit);
if (current_unit_magnitude != 0.) {
- if (named_unit->declaration().is(IfcSchema::IfcConversionBasedUnit::Class())) {
- IfcSchema::IfcConversionBasedUnit* u = (IfcSchema::IfcConversionBasedUnit*)base;
+ if (named_unit->as()) {
+ IfcSchema::IfcConversionBasedUnit* u = named_unit->as();
current_unit_name = u->Name();
- } else if (named_unit->declaration().is(IfcSchema::IfcSIUnit::Class())) {
+ } else if (named_unit->as()) {
IfcSchema::IfcSIUnit* si_unit = named_unit->as();
if (si_unit->Prefix()) {
current_unit_name = IfcSchema::IfcSIPrefix::ToString(*si_unit->Prefix()) + unit_name;
diff --git a/src/ifcgeom/IfcGeom.h b/src/ifcgeom/IfcGeom.h
index 86b7ec2a8d..65be6ac83a 100644
--- a/src/ifcgeom/IfcGeom.h
+++ b/src/ifcgeom/IfcGeom.h
@@ -299,8 +299,8 @@ public:
std::vector prs_styles;
#ifdef SCHEMA_HAS_IfcStyleAssignmentSelect
- aggregate_of_instance::ptr style_assignments = si->Styles();
- for (aggregate_of_instance::it kt = style_assignments->begin(); kt != style_assignments->end(); ++kt) {
+ auto style_assignments = si->Styles();
+ for (auto kt = style_assignments->begin(); kt != style_assignments->end(); ++kt) {
// Using IfcPresentationStyleAssignment is deprecated, use the direct assignment of a subtype of IfcPresentationStyle instead.
auto style_k = (*kt)->as();
@@ -345,10 +345,10 @@ public:
if (style->declaration().is(IfcSchema::IfcSurfaceStyle::Class())) {
IfcSchema::IfcSurfaceStyle* surface_style = (IfcSchema::IfcSurfaceStyle*) style;
if (surface_style->Side() != IfcSchema::IfcSurfaceSide::IfcSurfaceSide_NEGATIVE) {
- aggregate_of_instance::ptr styles_elements = surface_style->Styles();
- for (aggregate_of_instance::it mt = styles_elements->begin(); mt != styles_elements->end(); ++mt) {
- if ((*mt)->declaration().is(T::Class())) {
- return std::make_pair(surface_style, (T*) *mt);
+ auto styles_elements = surface_style->Styles();
+ for (auto mt = styles_elements->begin(); mt != styles_elements->end(); ++mt) {
+ if ((*mt)->template as()) {
+ return std::make_pair(surface_style, (*mt)->as());
}
}
}
diff --git a/src/ifcgeom/IfcGeometricSet.cpp b/src/ifcgeom/IfcGeometricSet.cpp
index 010fe6acb7..ce74dbe3dc 100644
--- a/src/ifcgeom/IfcGeometricSet.cpp
+++ b/src/ifcgeom/IfcGeometricSet.cpp
@@ -30,11 +30,11 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcGeometricSet* l, IfcRepresenta
const bool include_curves = getValue(GV_DIMENSIONALITY) != +1;
const bool include_solids_and_surfaces = getValue(GV_DIMENSIONALITY) != -1;
- aggregate_of_instance::ptr elements = l->Elements();
- if ( !elements->size() ) return false;
+ auto elements = l->Elements();
+ if (!elements->size()) return false;
bool part_succes = false;
auto parent_style = get_style(l);
- for (aggregate_of_instance::it it = elements->begin(); it != elements->end(); ++it) {
+ for (auto it = elements->begin(); it != elements->end(); ++it) {
auto element = *it;
TopoDS_Shape s;
if (shape_type(element) == ST_SHAPELIST) {
@@ -58,14 +58,14 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcGeometricSet* l, IfcRepresenta
part_succes = true;
decltype(parent_style) style = 0;
- if (element->declaration().is(IfcSchema::IfcPoint::Class())) {
- style = get_style((IfcSchema::IfcPoint*) element);
+ if (element->as()) {
+ style = get_style(element->as());
}
- else if (element->declaration().is(IfcSchema::IfcCurve::Class())) {
- style = get_style((IfcSchema::IfcCurve*) element);
+ else if (element->as()) {
+ style = get_style(element->as());
}
- else if (element->declaration().is(IfcSchema::IfcSurface::Class())) {
- style = get_style((IfcSchema::IfcSurface*) element);
+ else if (element->as()) {
+ style = get_style(element->as());
}
shapes.push_back(IfcRepresentationShapeItem(l->data().id(), s, style ? style : parent_style));
}
diff --git a/src/ifcgeom/IfcIndexedPolyCurve.cpp b/src/ifcgeom/IfcIndexedPolyCurve.cpp
index 77820e6327..81ae655b2f 100644
--- a/src/ifcgeom/IfcIndexedPolyCurve.cpp
+++ b/src/ifcgeom/IfcIndexedPolyCurve.cpp
@@ -58,11 +58,11 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcIndexedPolyCurve* l, TopoDS_Wi
double u, v;
if(l->Segments()) {
- aggregate_of_instance::ptr segments = *l->Segments();
- for (aggregate_of_instance::it it = segments->begin(); it != segments->end(); ++it) {
- IfcUtil::IfcBaseClass* segment = *it;
- if (segment->declaration().is(IfcSchema::IfcLineIndex::Class())) {
- IfcSchema::IfcLineIndex* line = (IfcSchema::IfcLineIndex*) segment;
+ auto segments = *l->Segments();
+ for (auto it = segments->begin(); it != segments->end(); ++it) {
+ auto segment = *it;
+ if (segment->as()) {
+ IfcSchema::IfcLineIndex* line = segment->as();
std::vector indices = *line;
gp_Pnt previous;
for (std::vector::const_iterator jt = indices.begin(); jt != indices.end(); ++jt) {
@@ -80,8 +80,8 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcIndexedPolyCurve* l, TopoDS_Wi
}
previous = current;
}
- } else if (segment->declaration().is(IfcSchema::IfcArcIndex::Class())) {
- IfcSchema::IfcArcIndex* arc = (IfcSchema::IfcArcIndex*) segment;
+ } else if (segment->as()) {
+ IfcSchema::IfcArcIndex* arc = segment->as();
std::vector indices = *arc;
if (indices.size() != 3) {
throw IfcParse::IfcException("Invalid IfcArcIndex encountered");
@@ -103,7 +103,7 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcIndexedPolyCurve* l, TopoDS_Wi
Logger::Warning("Ignoring segment on", l);
}
} else {
- throw IfcParse::IfcException("Unexpected IfcIndexedPolyCurve segment of type " + segment->declaration().name());
+ throw IfcParse::IfcException("Unexpected IfcIndexedPolyCurve segment of type " + segment->as()->declaration().name());
}
}
} else if (points.begin() < points.end()) {
diff --git a/src/ifcgeom/IfcShellBasedSurfaceModel.cpp b/src/ifcgeom/IfcShellBasedSurfaceModel.cpp
index 8430601d6d..0d78ceec64 100644
--- a/src/ifcgeom/IfcShellBasedSurfaceModel.cpp
+++ b/src/ifcgeom/IfcShellBasedSurfaceModel.cpp
@@ -23,13 +23,13 @@
#define Kernel MAKE_TYPE_NAME(Kernel)
bool IfcGeom::Kernel::convert(const IfcSchema::IfcShellBasedSurfaceModel* l, IfcRepresentationShapeItems& shapes) {
- aggregate_of_instance::ptr shells = l->SbsmBoundary();
+ auto shells = l->SbsmBoundary();
auto collective_style = get_style(l);
- for( aggregate_of_instance::it it = shells->begin(); it != shells->end(); ++ it ) {
+ for(auto it = shells->begin(); it != shells->end(); ++ it) {
TopoDS_Shape s;
decltype(collective_style) shell_style;
- if ((*it)->declaration().is(IfcSchema::IfcRepresentationItem::Class())) {
- shell_style = get_style((IfcSchema::IfcRepresentationItem*)*it);
+ if ((*it)->as()) {
+ shell_style = get_style((*it)->as());
}
if (convert_shape(*it,s)) {
shapes.push_back(IfcRepresentationShapeItem(l->data().id(), s, shell_style ? shell_style : collective_style));
diff --git a/src/ifcgeom/IfcTrimmedCurve.cpp b/src/ifcgeom/IfcTrimmedCurve.cpp
index a9f65ae539..77140a1e2a 100644
--- a/src/ifcgeom/IfcTrimmedCurve.cpp
+++ b/src/ifcgeom/IfcTrimmedCurve.cpp
@@ -72,8 +72,8 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcTrimmedCurve* l, TopoDS_Wire&
}
bool trim_cartesian = l->MasterRepresentation() != IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER;
- aggregate_of_instance::ptr trims1 = l->Trim1();
- aggregate_of_instance::ptr trims2 = l->Trim2();
+ auto trims1 = l->Trim1();
+ auto trims2 = l->Trim2();
unsigned sense_agreement = l->SenseAgreement() ? 0 : 1;
double flts[2];
@@ -83,25 +83,25 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcTrimmedCurve* l, TopoDS_Wire&
TopoDS_Edge e;
- for ( aggregate_of_instance::it it = trims1->begin(); it != trims1->end(); it ++ ) {
- IfcUtil::IfcBaseClass* i = *it;
- if ( i->declaration().is(IfcSchema::IfcCartesianPoint::Class()) ) {
- IfcGeom::Kernel::convert((IfcSchema::IfcCartesianPoint*)i, pnts[sense_agreement] );
+ for (auto it = trims1->begin(); it != trims1->end(); it ++ ) {
+ auto i = *it;
+ if (i->as()) {
+ IfcGeom::Kernel::convert(i->as(), pnts[sense_agreement] );
has_pnts[sense_agreement] = true;
- } else if ( i->declaration().is(IfcSchema::IfcParameterValue::Class()) ) {
- const double value = *((IfcSchema::IfcParameterValue*)i);
+ } else if (i->as()) {
+ const double value = *i->as();
flts[sense_agreement] = value * parameterFactor;
has_flts[sense_agreement] = true;
}
}
- for ( aggregate_of_instance::it it = trims2->begin(); it != trims2->end(); it ++ ) {
- IfcUtil::IfcBaseClass* i = *it;
- if ( i->declaration().is(IfcSchema::IfcCartesianPoint::Class()) ) {
- IfcGeom::Kernel::convert((IfcSchema::IfcCartesianPoint*)i, pnts[1-sense_agreement] );
+ for (auto it = trims2->begin(); it != trims2->end(); it ++ ) {
+ auto i = *it;
+ if (i->as()) {
+ IfcGeom::Kernel::convert(i->as(), pnts[1-sense_agreement] );
has_pnts[1-sense_agreement] = true;
- } else if ( i->declaration().is(IfcSchema::IfcParameterValue::Class()) ) {
- const double value = *((IfcSchema::IfcParameterValue*)i);
+ } else if (i->as()) {
+ const double value = *i->as();
flts[1-sense_agreement] = value * parameterFactor;
has_flts[1-sense_agreement] = true;
}
diff --git a/src/ifcgeom/Serialization.cpp b/src/ifcgeom/Serialization.cpp
index a6c5521374..fe257dde93 100644
--- a/src/ifcgeom/Serialization.cpp
+++ b/src/ifcgeom/Serialization.cpp
@@ -18,6 +18,8 @@
#include "IfcGeom.h"
+#include
+
template
int convert_to_ifc(const T& t, U*& u, bool /*advanced*/) {
std::vector coords(3);
@@ -220,6 +222,15 @@ int convert_to_ifc(const Handle_Geom_Curve& c, IfcSchema::IfcCurve*& curve, bool
}
}
+ if (bspline->IsPeriodic() && points->size()) {
+ points->push(*points->begin());
+ weights.push_back(weights[0]);
+ auto sum = std::accumulate(mults.begin(), mults.end(), 0);
+ auto d = sum - (bspline->Degree() + (int)points->size() + 1);
+ (*mults.begin()) -= d / 2;
+ (*mults.rbegin()) -= d / 2;
+ }
+
if (rational) {
curve = new IfcSchema::IfcRationalBSplineCurveWithKnots(
bspline->Degree(),
@@ -384,8 +395,8 @@ int convert_to_ifc(const TopoDS_Edge& e, IfcSchema::IfcCurve*& c, bool advanced)
return 0;
}
- aggregate_of_instance::ptr trim1(new aggregate_of_instance);
- aggregate_of_instance::ptr trim2(new aggregate_of_instance);
+ IfcSchema::IfcTrimmingSelect::list::ptr trim1(new IfcSchema::IfcTrimmingSelect::list);
+ IfcSchema::IfcTrimmingSelect::list::ptr trim2(new IfcSchema::IfcTrimmingSelect::list);
trim1->push(new IfcSchema::IfcParameterValue(a));
trim2->push(new IfcSchema::IfcParameterValue(b));
@@ -616,11 +627,11 @@ IfcUtil::IfcBaseClass* IfcGeom::MAKE_TYPE_NAME(serialise_)(const TopoDS_Shape& s
}
if (items->size() > 0) {
- rep = new IfcSchema::IfcShapeRepresentation(0, std::string("Body"), std::string("Brep"), items);
+ rep = new IfcSchema::IfcShapeRepresentation(0, std::string("Body"), advanced ? std::string("AdvancedBrep") : std::string("Brep"), items);
} else {
// If not, see if there is a shell
- IfcSchema::IfcOpenShell::list::ptr shells(new IfcSchema::IfcOpenShell::list);
+ IfcSchema::IfcShell::list::ptr shells(new IfcSchema::IfcShell::list);
for (TopExp_Explorer exp(shape, TopAbs_SHELL); exp.More(); exp.Next()) {
IfcSchema::IfcOpenShell* shell;
if (!convert_to_ifc(exp.Current(), shell, advanced)) {
@@ -630,8 +641,8 @@ IfcUtil::IfcBaseClass* IfcGeom::MAKE_TYPE_NAME(serialise_)(const TopoDS_Shape& s
}
if (shells->size() > 0) {
- items->push(new IfcSchema::IfcShellBasedSurfaceModel(shells->generalize()));
- rep = new IfcSchema::IfcShapeRepresentation(0, std::string("Body"), std::string("Brep"), items);
+ items->push(new IfcSchema::IfcShellBasedSurfaceModel(shells));
+ rep = new IfcSchema::IfcShapeRepresentation(0, std::string("Body"), advanced ? std::string("AdvancedBrep") : std::string("Brep"), items);
} else {
// If not, see if there is are one of more faces. Note that they will be grouped into a shell.
@@ -640,7 +651,7 @@ IfcUtil::IfcBaseClass* IfcGeom::MAKE_TYPE_NAME(serialise_)(const TopoDS_Shape& s
if (face_count > 0) {
items->push(shell);
- rep = new IfcSchema::IfcShapeRepresentation(0, std::string("Body"), std::string("Brep"), items);
+ rep = new IfcSchema::IfcShapeRepresentation(0, std::string("Body"), advanced ? std::string("AdvancedBrep") : std::string("Brep"), items);
} else {
// If not, see if there are any edges. Note that wires are skipped as
@@ -663,7 +674,7 @@ IfcUtil::IfcBaseClass* IfcGeom::MAKE_TYPE_NAME(serialise_)(const TopoDS_Shape& s
rep = new IfcSchema::IfcShapeRepresentation(0, std::string("Axis"), std::string("Curve2D"), edges->as());
} else {
// A geometric set is created as that probably (?) makes more sense in IFC
- IfcSchema::IfcGeometricCurveSet* curves = new IfcSchema::IfcGeometricCurveSet(edges);
+ IfcSchema::IfcGeometricCurveSet* curves = new IfcSchema::IfcGeometricCurveSet(edges->as());
items->push(curves);
rep = new IfcSchema::IfcShapeRepresentation(0, std::string("Axis"), std::string("GeometricCurveSet"), items->as());
}
diff --git a/src/ifcgeom_schema_agnostic/IfcGeomRepresentation.cpp b/src/ifcgeom_schema_agnostic/IfcGeomRepresentation.cpp
index c17ce210ee..7b0bd95756 100644
--- a/src/ifcgeom_schema_agnostic/IfcGeomRepresentation.cpp
+++ b/src/ifcgeom_schema_agnostic/IfcGeomRepresentation.cpp
@@ -332,7 +332,7 @@ IfcGeom::Representation::Triangulation::Triangulation(const BRep& shape_model)
for (int i = 1; i <= tri->NbNodes(); ++i) {
coords.push_back(tri->Node(i).Transformed(loc).XYZ());
trsf.Transforms(*coords.rbegin());
- dict[i] = addVertex(surface_style_id, *coords.rbegin());
+ dict[i] = addVertex(iit->ItemId(), surface_style_id, *coords.rbegin());
if (calculate_normals) {
const gp_Pnt2d& uv = tri->UVNode(i);
@@ -387,6 +387,7 @@ IfcGeom::Representation::Triangulation::Triangulation(const BRep& shape_model)
_faces.push_back(dict[n3]);
_material_ids.push_back(surface_style_id);
+ _item_ids.push_back(iit->ItemId());
addEdge(dict[n1], dict[n2], edgecount, edges_temp);
addEdge(dict[n2], dict[n3], edgecount, edges_temp);
@@ -420,7 +421,7 @@ IfcGeom::Representation::Triangulation::Triangulation(const BRep& shape_model)
for (int i = 1; i <= n; ++i) {
gp_XYZ p = tessellater.Value(i).XYZ();
- int current = addVertex(surface_style_id, p);
+ int current = addVertex(iit->ItemId(), surface_style_id, p);
std::vector> segments;
if (i > 1) {
@@ -452,8 +453,8 @@ IfcGeom::Representation::Triangulation::Triangulation(const BRep& shape_model)
trsf.Transforms(p3);
trsf.Transforms(p);
- int left = addVertex(surface_style_id, p2);
- int right = addVertex(surface_style_id, p3);
+ int left = addVertex(iit->ItemId(), surface_style_id, p2);
+ int right = addVertex(iit->ItemId(), surface_style_id, p3);
segments.push_back(std::make_pair(left, current));
segments.push_back(std::make_pair(right, current));
@@ -463,6 +464,7 @@ IfcGeom::Representation::Triangulation::Triangulation(const BRep& shape_model)
_edges.push_back(sgmt.first);
_edges.push_back(sgmt.second);
_material_ids.push_back(surface_style_id);
+ _item_ids.push_back(iit->ItemId());
}
previous = current;
@@ -505,14 +507,14 @@ std::vector IfcGeom::Representation::Triangulation::box_project_uvs(cons
return uvs;
}
-int IfcGeom::Representation::Triangulation::addVertex(int material_index, const gp_XYZ & p) {
+int IfcGeom::Representation::Triangulation::addVertex(int item_index, int material_index, const gp_XYZ & p) {
const bool convert = settings().get(IteratorSettings::CONVERT_BACK_UNITS);
const double X = convert ? (p.X() / settings().unit_magnitude()) : p.X();
const double Y = convert ? (p.Y() / settings().unit_magnitude()) : p.Y();
const double Z = convert ? (p.Z() / settings().unit_magnitude()) : p.Z();
int i = (int)_verts.size() / 3;
if (settings().get(IteratorSettings::WELD_VERTICES)) {
- const VertexKey key = std::make_pair(material_index, std::make_pair(X, std::make_pair(Y, Z)));
+ const VertexKey key = std::make_tuple(item_index, material_index, X, Y, Z);
typename VertexKeyMap::const_iterator it = welds.find(key);
if (it != welds.end()) return it->second;
i = (int)(welds.size() + weld_offset_);
diff --git a/src/ifcgeom_schema_agnostic/IfcGeomRepresentation.h b/src/ifcgeom_schema_agnostic/IfcGeomRepresentation.h
index ecb71f374c..2762e40321 100644
--- a/src/ifcgeom_schema_agnostic/IfcGeomRepresentation.h
+++ b/src/ifcgeom_schema_agnostic/IfcGeomRepresentation.h
@@ -105,10 +105,8 @@ namespace IfcGeom {
class Triangulation : public Representation {
private:
- // A nested pair of floats and a material index to be able to store an XYZ coordinate in a map.
- // TODO: Make this a std::tuple when compilers add support for that.
- typedef typename std::pair > Coordinate;
- typedef typename std::pair VertexKey;
+ // A tuple of - to store as a key in a map.
+ typedef typename std::tuple VertexKey;
typedef std::map VertexKeyMap;
typedef std::pair Edge;
@@ -120,6 +118,7 @@ namespace IfcGeom {
std::vector uvs_;
std::vector _material_ids;
std::vector _materials;
+ std::vector _item_ids;
size_t weld_offset_;
VertexKeyMap welds;
@@ -137,6 +136,7 @@ namespace IfcGeom {
const std::vector& uvs() const { return uvs_; }
const std::vector& material_ids() const { return _material_ids; }
const std::vector& materials() const { return _materials; }
+ const std::vector& item_ids() const { return _item_ids; }
Triangulation(const BRep& shape_model);
@@ -149,7 +149,8 @@ namespace IfcGeom {
const std::vector& normals,
const std::vector& uvs,
const std::vector& material_ids,
- const std::vector>& styles)
+ const std::vector>& styles,
+ const std::vector& item_ids)
: Representation(settings)
, id_(id)
, _verts(verts)
@@ -159,6 +160,7 @@ namespace IfcGeom {
, uvs_(uvs)
, _material_ids(material_ids)
, styles_(styles)
+ , _item_ids(item_ids)
{
for (auto& s : styles_) {
_materials.push_back(IfcGeom::Material(s));
@@ -173,7 +175,7 @@ namespace IfcGeom {
private:
/// Welds vertices that belong to different faces
- int addVertex(int material_index, const gp_XYZ& p);
+ int addVertex(int item_index, int material_index, const gp_XYZ& p);
void addEdge(int n1, int n2, std::map, int>& edgecount, std::vector >& edges_temp);
Triangulation();
diff --git a/src/ifcgeom_schema_agnostic/Kernel.h b/src/ifcgeom_schema_agnostic/Kernel.h
index 06d4dd079b..abeb159a1a 100644
--- a/src/ifcgeom_schema_agnostic/Kernel.h
+++ b/src/ifcgeom_schema_agnostic/Kernel.h
@@ -11,6 +11,9 @@
#include
#include
+#ifndef SCHEMA_SEQ
+static_assert(false, "A boost preprocessor sequence of schema identifiers is needed for this file to compile.");
+#endif
// @tfk A macro cannot define an include (I think), so here we can't
// loop over the sequence of schema identifiers, but rather we have
@@ -168,4 +171,4 @@ namespace IfcGeom {
};
}
-#endif
\ No newline at end of file
+#endif
diff --git a/src/ifcgeom_schema_agnostic/boolean_utils.cpp b/src/ifcgeom_schema_agnostic/boolean_utils.cpp
index 442035d11e..f8815523ab 100644
--- a/src/ifcgeom_schema_agnostic/boolean_utils.cpp
+++ b/src/ifcgeom_schema_agnostic/boolean_utils.cpp
@@ -845,7 +845,7 @@ bool IfcGeom::util::boolean_operation(const boolean_settings& settings, const To
}
if (fuzziness < 0.) {
- fuzziness = settings.precision / 10.;
+ fuzziness = settings.precision / 100.;
}
// @todo, it does seem a bit odd, we first triangulate non-planar faces
diff --git a/src/ifcgeom_schema_agnostic/wire_utils.cpp b/src/ifcgeom_schema_agnostic/wire_utils.cpp
index ab12ea76f2..b2a2eb50b0 100644
--- a/src/ifcgeom_schema_agnostic/wire_utils.cpp
+++ b/src/ifcgeom_schema_agnostic/wire_utils.cpp
@@ -84,7 +84,7 @@ bool IfcGeom::util::approximate_plane_through_wire(const TopoDS_Wire& wire, gp_P
// the given points to the constructed plane. When doing triangulation and
// obtaining a 2d points for the Delaunay, infinity is passed here, so this
// can't for assessing degenerativeness.
- if (v.SquareMagnitude() < 1.e-7) {
+ if (v.Magnitude() < 1.e-7) {
Logger::Warning("Degenerate face boundary in normal estimation");
return false;
}
diff --git a/src/ifcopenshell-python/docs/blenderbim.rst b/src/ifcopenshell-python/docs/blenderbim.rst
new file mode 100644
index 0000000000..957619293d
--- /dev/null
+++ b/src/ifcopenshell-python/docs/blenderbim.rst
@@ -0,0 +1,6 @@
+BlenderBIM Add-on
+=================
+
+The BlenderBIM Add-on lets you analyse, create, and modify OpenBIM with
+Blender. For more information, visit the `BlenderBIM Add-on website
+`_.
diff --git a/src/ifcopenshell-python/docs/ifc2ca.rst b/src/ifcopenshell-python/docs/ifc2ca.rst
new file mode 100644
index 0000000000..419befb498
--- /dev/null
+++ b/src/ifcopenshell-python/docs/ifc2ca.rst
@@ -0,0 +1,5 @@
+Ifc2CA
+======
+
+Ifc2CA converts IFC models to FEM structural analytical models to be used in
+Code_Aster.
diff --git a/src/ifcopenshell-python/docs/ifc4d.rst b/src/ifcopenshell-python/docs/ifc4d.rst
new file mode 100644
index 0000000000..f3474b7871
--- /dev/null
+++ b/src/ifcopenshell-python/docs/ifc4d.rst
@@ -0,0 +1,4 @@
+Ifc4D
+=====
+
+Ifc4D contains a series of utilities for converting to and from various 4D software.
diff --git a/src/ifcopenshell-python/docs/ifc5d.rst b/src/ifcopenshell-python/docs/ifc5d.rst
new file mode 100644
index 0000000000..966c9262d6
--- /dev/null
+++ b/src/ifcopenshell-python/docs/ifc5d.rst
@@ -0,0 +1,5 @@
+Ifc5D
+=====
+
+Ifc5D is a collection of utilities of manipulating cost-related data to and
+from formats, reports, and optimisation engines.
diff --git a/src/ifcopenshell-python/docs/ifccityjson.rst b/src/ifcopenshell-python/docs/ifccityjson.rst
new file mode 100644
index 0000000000..df4c7a209b
--- /dev/null
+++ b/src/ifcopenshell-python/docs/ifccityjson.rst
@@ -0,0 +1,5 @@
+IfcCityJSON
+===========
+
+IfcCityJSON is a converter for CityJSON files and IFC. It currently only
+supports one-way conversion from CityJSON to IFC.
diff --git a/src/ifcopenshell-python/docs/ifcclash.rst b/src/ifcopenshell-python/docs/ifcclash.rst
index 44ce3074dd..5448bdde91 100644
--- a/src/ifcopenshell-python/docs/ifcclash.rst
+++ b/src/ifcopenshell-python/docs/ifcclash.rst
@@ -12,7 +12,7 @@ Source installation
2. `Install hppfcl `_
3. Optionally `install bcf `_ (needed for BCF reports of results)
4. `Clone the source code `_.
-5. ``cd /path/to/src/ifcclash``
+5. ``cd /path/to/IfcOpenShell/src/ifcclash``
Here is a minimal example of how to use IfcPatch as a Python module or CLI
utility:
@@ -91,7 +91,6 @@ Here is a minimal example of how to use IfcClash as a library:
import logging
import ifcclash
-
settings = ClashSettings()
settings.output = "output.json"
settings.logger = logging.getLogger("Clash")
diff --git a/src/ifcopenshell-python/docs/ifcconvert.rst b/src/ifcopenshell-python/docs/ifcconvert.rst
index c856124353..163d946834 100644
--- a/src/ifcopenshell-python/docs/ifcconvert.rst
+++ b/src/ifcopenshell-python/docs/ifcconvert.rst
@@ -1,8 +1,70 @@
IfcConvert
==========
-IfcConvert is a command-line application for converting IFC geometry into
-file formats such as OBJ, DAE, GLB, STP, IGS, XML, and SVG.
+IfcConvert is a command-line application for converting IFC geometry into file
+formats such as OBJ, DAE, GLB, STP, IGS, XML, SVG, H5, and IFC itself.
+
+For other formats, you may use other IfcOpenShell utilities as shown in the
+table below.
+
++-------------------------+-------------------------+----------------------+
+| From Format | To Format | Tool |
++=========================+=========================+======================+
+| .ifc | .obj, .dae, .glb, .stp, | IfcConvert |
+| | .igs, .xml, .svg, .h5, | |
+| | .ifc | |
++-------------------------+-------------------------+----------------------+
+| .ifc | .dae, .abc, .usd, .obj, | `BlenderBIM Add-on`_ |
+| | .ply, .stl, .fbx, .glb, | |
+| | .gltf, .x3d, .dxf | |
++-------------------------+-------------------------+----------------------+
+| .ifc | .ifcZIP, .ifcXML, .ifc | IfcOpenShell-Python_ |
++-------------------------+-------------------------+----------------------+
+| .ifc | .ifcJSON | Ifc2JSON_ |
++-------------------------+-------------------------+----------------------+
+| .ifc | .ifc | IfcPatch_ |
+| | (IFC2X3, IFC4, IFC4X3), | |
+| | SQLite, MySQL | |
++-------------------------+-------------------------+----------------------+
+| .ifc | .json (Code_Aster), | Ifc2CA_ |
+| | .comm (Code_Aster) | |
++-------------------------+-------------------------+----------------------+
+| .ifc | .xml (Oracle P6), | Ifc4D_ |
+| | .xml (MS Project) | |
++-------------------------+-------------------------+----------------------+
+| .ifc | .csv, .ods, .xlsx | Ifc5D_ |
++-------------------------+-------------------------+----------------------+
+| .ifc | .csv, .ods, .xlsx, | IfcCSV_ |
+| | Pandas DataFrame | |
++-------------------------+-------------------------+----------------------+
+| .csv | .ifc | Ifc5D_ |
++-------------------------+-------------------------+----------------------+
+| .csv | .ifc | IfcCSV_ |
++-------------------------+-------------------------+----------------------+
+| .dxf | .ifc | `BlenderBIM Add-on`_ |
++-------------------------+-------------------------+----------------------+
+| .obj | .ifc | `BlenderBIM Add-on`_ |
++-------------------------+-------------------------+----------------------+
+| .json (CityJSON) | .ifc | IfcCityJSON_ |
++-------------------------+-------------------------+----------------------+
+| .xer (Oracle P6) | .ifc | Ifc4D_ |
++-------------------------+-------------------------+----------------------+
+| .xml (Oracle P6) | .ifc | Ifc4D_ |
++-------------------------+-------------------------+----------------------+
+| .xml (MS Project) | .ifc | Ifc4D_ |
++-------------------------+-------------------------+----------------------+
+| .xml (Powerproject) | .ifc | Ifc4D_ |
++-------------------------+-------------------------+----------------------+
+
+.. _IfcOpenShell-Python: ifcopenshell-python.html
+.. _IfcPatch: ifcpatch.html
+.. _Ifc2CA: ifc2ca.html
+.. _IfcCSV: ifccsv.html
+.. _Ifc4D: ifc4d.html
+.. _Ifc5D: ifc5d.html
+.. _IfcCityJSON: ifccityjson.html
+.. _Ifc2JSON: other.html
+.. _BlenderBIM Add-on: https://blenderbim.org
.. toctree::
:hidden:
diff --git a/src/ifcopenshell-python/docs/ifccsv.rst b/src/ifcopenshell-python/docs/ifccsv.rst
new file mode 100644
index 0000000000..da2ecc8298
--- /dev/null
+++ b/src/ifcopenshell-python/docs/ifccsv.rst
@@ -0,0 +1,151 @@
+IfcCSV
+======
+
+IfcCSV lets you view and edit IFC data using spreadsheets or tabular datasets,
+such as CSV, ODS, XLSX, Pandas DataFrames, and regular Python lists.
+
+IfcCSV lets you select rooted elements using the IFC selection queries. These
+elements may be physical elements (walls, doors, windows, etc), construction
+types (wall types, door types, window types, etc), or even non-geometric
+(tasks, resources, cost items, etc).
+
+Once you have selected a list of elements, you may specify attributes,
+properties, quantities, or relationships to extract and use as columns in your
+table.
+
+For example, you might use a selection query of ``.IfcDoor``, for all doors in
+your project. You may then specify a ``class`` attribute, a ``Name`` attribute,
+a ``type.Name`` relationship, and a ``type.Description`` relationship. This
+will produce a table as shown:
+
++------------------------+---------+------+-----------+------------------------------------+
+| GlobalId | class | Name | type.Name | type.Description |
++========================+=========+======+===========+====================================+
+| 3AjGVS9EjBeBrDA5_tAcwQ | IfcDoor | 01 | DT-A | Single swing steel frame door |
++------------------------+---------+------+-----------+------------------------------------+
+| 07BewvHLn2$x6HsHH06rAA | IfcDoor | 02 | DT-A | Single swing steel frame door |
++------------------------+---------+------+-----------+------------------------------------+
+| 3b3Mk8uIb3Qu_eSPKxsI8x | IfcDoor | 01 | DT-B | Double swing steel frame fire door |
++------------------------+---------+------+-----------+------------------------------------+
+| ... | ... | ... | ... | ... |
++------------------------+---------+------+-----------+------------------------------------+
+
+.. note::
+
+ IfcCSV automatically inserts the GlobalId column at the beginning, in order
+ to uniquely identify the element.
+
+This tabular data may then be exported in your desired format.
+
+You may then edit the data, and reimport the data back into IFC. The changes
+you make in the spreadsheet or table will also be made in the IFC.
+
+There are different methods of installation, depending on your situation.
+
+1. **Source installation** is recommended for users wanting to use the latest
+ code as a library or a CLI utility.
+2. **Using the BlenderBIM Add-on** is recommended for non-developers wanting a
+ graphical interface.
+
+Source installation
+-------------------
+
+1. :doc:`Install IfcOpenShell `
+2. `Clone the source code `_.
+3. ``cd /path/to/IfcOpenShell/src/ifccsv``
+
+Depending on which formats you want to edit, you will need to install more dependencies:
+
+- ``pip install odfpy`` for ODS support
+- ``pip install xlsxwriter`` for XLSX support
+- ``pip install pandas`` for Pandas DataFrame support
+
+Here is a minimal example of how to use IfcDiff as a Python module or CLI
+utility:
+
+::
+
+ $ python -m ifccsv -h
+ usage: ifccsv.py [-h] -i IFC [-s SPREADSHEET] [-f FORMAT] [-q QUERY] [-a ARGUMENTS [ARGUMENTS ...]] [--export] [--import]
+
+ Exports IFC data to and from CSV
+
+ options:
+ -h, --help show this help message and exit
+ -i IFC, --ifc IFC The IFC file
+ -s SPREADSHEET, --spreadsheet SPREADSHEET
+ The spreadsheet file
+ -f FORMAT, --format FORMAT
+ The format, chosen from csv, ods, or xlsx
+ -q QUERY, --query QUERY
+ Specify a IFC query selector, such as ".IfcWall"
+ -a ARGUMENTS [ARGUMENTS ...], --arguments ARGUMENTS [ARGUMENTS ...]
+ Specify attributes that are part of the extract, using the IfcQuery syntax such as 'type', 'Name' or 'Pset_Foo.Bar'
+ --export Export from IFC to CSV
+ --import Import from CSV to IFC
+ $ python -m ifccsv -i model.ifc -s out.csv -f csv -q .IfcProduct -a "Name" "Description" --export
+ $ cat out.csv
+
+Here is a minimal example of how to use IfcCSV as a library:
+
+.. code-block:: python
+
+ import ifcopenshell
+ from ifccsv import IfcCsv
+
+ model = ifcopenshell.open("/path/to/model.ifc")
+ # Using the selector is optional. You may specify elements as a list manually if you prefer.
+ # e.g. elements = model.by_type("IfcElement")
+ elements = ifcopenshell.util.selector.Selector.parse(model, ".IfcElement")
+ attributes = ["Name", "Description"]
+
+ # Export our model's elements and their attributes to a CSV.
+ ifc_csv = IfcCsv()
+ ifc_csv.export(model, elements, attributes, output="out.csv", format="csv", delimiter=",")
+
+ # Optionally, you can explicitly export to different formats.
+ # ifc_csv = IfcCsv()
+ # ifc_csv.export(model, elements, attributes)
+ ifc_csv.export_csv("out.csv", delimiter=";")
+ ifc_csv.export_ods("out.ods")
+ ifc_csv.export_xlsx("out.xlsx")
+
+ # Optionally, you can create a Pandas DataFrame.
+ df = ifc_csv.export_pd()
+ print(df)
+
+ # Optionally, you can directly fetch the headers and rows as Python lists.
+ print(ifc_csv.headers)
+ print(ifc_csv.results)
+
+ # You can also import changes from a CSV
+ ifc_csv.Import(model, "input.csv")
+ model.write("/path/to/updated_model.ifc")
+
+Using the BlenderBIM Add-on
+---------------------------
+
+The BlenderBIM Add-on is a Blender based graphical interface to IfcOpenShell.
+Other than providing a graphical IFC authoring platform, it also comes with
+IfcOpenShell, its utilities, and a Python shell built-in. This means you don't
+need to install Python first, and you also can compare your IfcOpenShell
+scripting to what you see with a visual model viewer, or use a graphical
+interface to access the IfcOpenShell utilities.
+
+1. Install the BlenderBIM Add-on by following the `BlenderBIM Add-on
+ installation documentation
+ `_.
+
+2. Launch Blender. Change to the **Scene Properties** tab in the **Properties
+ Panel**. Scroll down to the **IFC Collaboration > IFC CSV Import / Export**
+ panel.
+
+3. Browse to your IFC file.
+
+4. Type in a filter query, such as ``.IfcDoor``.
+
+5. Optionally add attributes you'd like to export.
+
+6. Press **Export IFC to CSV**
+
+TODO: add pictures and make this clearer for non-developers.
diff --git a/src/ifcopenshell-python/docs/ifcdiff.rst b/src/ifcopenshell-python/docs/ifcdiff.rst
index b73530cae4..b8b5332566 100644
--- a/src/ifcopenshell-python/docs/ifcdiff.rst
+++ b/src/ifcopenshell-python/docs/ifcdiff.rst
@@ -28,7 +28,7 @@ Source installation
1. :doc:`Install IfcOpenShell `
2. `Clone the source code `_.
-3. ``cd /path/to/src/ifcdiff``
+3. ``cd /path/to/IfcOpenShell/src/ifcdiff``
4. ``pip install -r requirements.txt``
Here is a minimal example of how to use IfcDiff as a Python module or CLI
diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst
index 5bd4131902..6de1a70c48 100644
--- a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst
+++ b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst
@@ -40,7 +40,7 @@ related information in ``shape.geometry``:
# A unique geometry ID, useful to check whether or not two geometries are
# identical for caching and reuse. The naming scheme is:
# IfcShapeRepresentation.id{-layerset-LayerSet.id}{-material-Material.id}{-openings-[Opening n.id ...]}{-world-coords}
- print(shape.geometry.id())
+ print(shape.geometry.id)
# A 4x4 matrix representing the location and rotation of the element, in the form:
# [ [ x_x, y_x, z_x, x ]
@@ -59,6 +59,9 @@ related information in ``shape.geometry``:
# For convenience, you might want the matrix as a nested numpy array, so you can do matrix math.
matrix = ifcopenshell.util.shape.get_shape_matrix(shape)
+ # You can also extract the XYZ location of the matrix.
+ location = matrix[:,3][0:3]
+
# X Y Z of vertices in flattened list e.g. [v1x, v1y, v1z, v2x, v2y, v2z, ...]
verts = shape.geometry.verts
diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/installation.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/installation.rst
index a66493196a..4708290f45 100644
--- a/src/ifcopenshell-python/docs/ifcopenshell-python/installation.rst
+++ b/src/ifcopenshell-python/docs/ifcopenshell-python/installation.rst
@@ -130,6 +130,12 @@ Docker
Installing IfcOpenShell from Docker will also install IfcConvert.
+.. using-container-on-aws-lambda::
+
+ Refer `AWS Lambda
+ Readme
+ `__.
+
Using the BlenderBIM Add-on
---------------------------
diff --git a/src/ifcopenshell-python/docs/ifctester.rst b/src/ifcopenshell-python/docs/ifctester.rst
new file mode 100644
index 0000000000..d384e3216d
--- /dev/null
+++ b/src/ifcopenshell-python/docs/ifctester.rst
@@ -0,0 +1,6 @@
+IfcTester
+=========
+
+IfcTester lets you author and read Information Delivery Specification (IDS)
+files. You can validate IFC models against IDS and generate reports in multiple
+formats. It works from the command line, as a web app, or as a library.
diff --git a/src/ifcopenshell-python/docs/index.rst b/src/ifcopenshell-python/docs/index.rst
index a29a01941f..f5bd6086d0 100644
--- a/src/ifcopenshell-python/docs/index.rst
+++ b/src/ifcopenshell-python/docs/index.rst
@@ -10,18 +10,38 @@ IfcOpenShell is a suite of developer libraries and utilities to manipulate OpenB
.. toctree::
:hidden:
:maxdepth: 1
- :caption: Contents:
+ :caption: Main:
ifcopenshell
ifcopenshell-python
ifcconvert
+ blenderbim
+
+.. toctree::
+ :hidden:
+ :maxdepth: 1
+ :caption: Utilities:
+
+ bimserver-plugin
bimtester
- ifcdiff
- ifcpatch
+ ifc2ca
+ ifc4d
+ ifc5d
+ ifccityjson
ifcclash
ifccobie
+ ifccsv
+ ifcdiff
+ ifcpatch
ifcsverchok
- bimserver-plugin
+ ifctester
+ other
+
+.. toctree::
+ :hidden:
+ :maxdepth: 1
+ :caption: API:
+
C++ API Reference
Python API Reference
diff --git a/src/ifcopenshell-python/docs/other.rst b/src/ifcopenshell-python/docs/other.rst
new file mode 100644
index 0000000000..d7f30ef31f
--- /dev/null
+++ b/src/ifcopenshell-python/docs/other.rst
@@ -0,0 +1,18 @@
+Other utilities
+===============
+
+There are other notable utilites that are built with, or integrate with
+IfcOpenShell, but are not officially part of the IfcOpenShell umbrella.
+
++----------------------+---------------------------------------------------+
+| Utility | Description |
++======================+===================================================+
+| Ifc2JSON_ | Converts .ifc to .ifcJSON, including support for |
+| | stripping geometry, and IfcJSON version 4 and 5a. |
++----------------------+---------------------------------------------------+
+| VoxelisationToolkit_ | Converts .ifc geometry into voxels, and lets you |
+| | perform voxel based geometric analysis. |
++----------------------+---------------------------------------------------+
+
+.. _Ifc2JSON: https://github.com/buildingSMART/ifcJSON/tree/master/file_converters
+.. _VoxelisationToolkit: https://github.com/opensourceBIM/voxelization_toolkit
diff --git a/src/ifcopenshell-python/ifcopenshell/__init__.py b/src/ifcopenshell-python/ifcopenshell/__init__.py
index 4b08dc3907..4e908f51b3 100644
--- a/src/ifcopenshell-python/ifcopenshell/__init__.py
+++ b/src/ifcopenshell-python/ifcopenshell/__init__.py
@@ -71,6 +71,10 @@ except Exception as e:
from . import guid
from .file import file
from .entity_instance import entity_instance, register_schema_attributes
+from .sql import sqlite, sqlite_entity
+try:
+ from .stream import stream, stream_entity
+except: pass
READ_ERROR = ifcopenshell_wrapper.file_open_status.READ_ERROR
NO_HEADER = ifcopenshell_wrapper.file_open_status.NO_HEADER
@@ -87,7 +91,7 @@ class SchemaError(Error):
pass
-def open(path: "os.PathLike | str", format: str = None) -> file:
+def open(path: "os.PathLike | str", format: str = None, should_stream: bool = False) -> file:
"""Loads an IFC dataset from a filepath
You can specify a file format. If no format is given, it is guessed from its extension.
@@ -114,6 +118,10 @@ def open(path: "os.PathLike | str", format: str = None) -> file:
return open(zf.extract(name, unzipped_path))
else:
raise LookupError(f"No .ifc or .ifcXML file found in {path}")
+ if format == ".ifcSQLite":
+ return sqlite(path)
+ if should_stream:
+ return stream(path)
f = ifcopenshell_wrapper.open(str(path.absolute()))
if f.good():
return file(f)
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 df563b586a..df01f767db 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py
@@ -481,6 +481,7 @@ class Usecase:
frame_thickness,
glass_thickness,
window_position,
+ self.settings["unit_scale"],
)
lining_offset_items = lining_items + door_items + window_lining_items + frame_items + glass_items
diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py
index 3d226a6787..f3a0fe6b85 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py
@@ -369,7 +369,11 @@ class Usecase:
else:
return self.create_curves_from_mesh(should_exclude_faces=should_exclude_faces, is_2d=is_2d)
elif isinstance(self.settings["geometry"], bpy.types.Curve):
- return self.create_curves_from_curve(is_2d=is_2d)
+ if self.file.schema == "IFC2X3":
+ return self.create_curves_from_curve_ifc2x3(is_2d=is_2d)
+ else:
+ return self.create_curves_from_curve(is_2d=is_2d)
+
def create_curves_from_mesh(self, should_exclude_faces=False, is_2d=False):
curves = []
@@ -433,24 +437,32 @@ class Usecase:
curves.append(self.file.createIfcPolyline(loop_points))
return curves
- def create_curves_from_curve(self, is_2d=False):
+ def create_curves_from_curve_ifc2x3(self, is_2d=False):
+ # TODO: support interpolated curves, not just polylines
+ dim = (lambda v: v.xy) if is_2d else (lambda v: v.xyz)
results = []
for spline in self.settings["geometry"].splines:
- # TODO: support interpolated curves, not just polylines
- points = []
- for point in spline.bezier_points:
- if is_2d:
- points.append(self.create_cartesian_point(point.co.x, point.co.y))
- else:
- points.append(self.create_cartesian_point(point.co.x, point.co.y, point.co.z))
- for point in spline.points:
- if is_2d:
- points.append(self.create_cartesian_point(point.co.x, point.co.y))
- else:
- points.append(self.create_cartesian_point(point.co.x, point.co.y, point.co.z))
+ points = spline.bezier_points[:] + spline.points[:]
if spline.use_cyclic_u:
points.append(points[0])
- results.append(self.file.createIfcPolyline(points))
+ ifc_points = [self.create_cartesian_point(*dim(point.co)) for point in points]
+ results.append(self.file.createIfcPolyline(ifc_points))
+ return results
+
+ def create_curves_from_curve(self, is_2d=False):
+ # TODO: support interpolated curves, not just polylines
+ dim = (lambda v: v.xy) if is_2d else (lambda v: v.xyz)
+ to_units = lambda v: Vector([self.convert_si_to_unit(i) for i in v])
+ builder = ifcopenshell.util.shape_builder.ShapeBuilder(self.file)
+ results = []
+
+ for spline in self.settings["geometry"].splines:
+ points = spline.bezier_points[:] + spline.points[:]
+
+ points = [to_units(dim(p.co)) for p in points]
+ closed_polyline = spline.use_cyclic_u and len(points) > 1
+ results.append(builder.polyline(points, closed=closed_polyline))
+
return results
def create_point_cloud_representation(self, is_2d=False):
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 2dcf6daec2..47b2f3745b 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py
@@ -42,7 +42,9 @@ DEFAULT_PANEL_SCHEMAS = {
}
-def create_ifc_window_frame_simple(builder, size: Vector, thickness: list, position: Vector = V(0, 0, 0).freeze()):
+def create_ifc_window_frame_simple(
+ builder: ShapeBuilder, size: Vector, thickness: list, position: Vector = V(0, 0, 0).freeze()
+):
"""`thickness` of the profile is defined as list in the following order:
`(LEFT, TOP, RIGHT, BOTTOM)`
@@ -51,36 +53,103 @@ def create_ifc_window_frame_simple(builder, size: Vector, thickness: list, posit
if not isinstance(thickness, collections.abc.Iterable):
thickness = [thickness] * 4
-
th_left, th_up, th_right, th_bottom = thickness
- panel_rect = builder.rectangle(size=size.xz)
+ def get_extruded_profile(profile):
+ return builder.extrude(
+ profile,
+ size.y,
+ position_x_axis=V(1, 0, 0),
+ position_z_axis=V(0, -1, 0),
+ extrusion_vector=V(0, 0, -1),
+ position=position,
+ )
- inner_rect_size = size - V(th_left + th_right, 0, th_bottom + th_up)
- inner_rect = builder.rectangle(size=inner_rect_size.xz, position=V(th_left, th_bottom))
+ # if all lining sides are present then we can just use two rectangles
+ # as inner and outer curves of the profile
+ if thickness.count(0) == 0:
+ panel_rect = builder.rectangle(size=size.xz)
- panel_profile = builder.profile(panel_rect, inner_curves=inner_rect)
- panel_extruded = builder.extrude(
- panel_profile,
- size.y,
- position_x_axis=V(1, 0, 0),
- position_z_axis=V(0, -1, 0),
- extrusion_vector=V(0, 0, -1),
- position=position,
- )
- return panel_extruded
+ inner_rect_size = size - V(th_left + th_right, 0, th_bottom + th_up)
+ inner_rect = builder.rectangle(size=inner_rect_size.xz, position=V(th_left, th_bottom))
+
+ panel_profile = builder.profile(panel_rect, inner_curves=inner_rect)
+ return [get_extruded_profile(panel_profile)]
+
+ # if some side has zero thickness it means we cannot use inner curves
+ # and need to generate L/U shape or just separate rectangles
+ else:
+
+ def get_segments_from_thickness():
+ nonlocal thickness
+ segments = []
+ cur_segment = []
+ for i, thickness in enumerate(thickness):
+ if thickness == 0:
+ if cur_segment:
+ segments.append(tuple(cur_segment))
+ cur_segment = []
+ else:
+ cur_segment.append(i)
+
+ if cur_segment:
+ if len(segments) > 0 and segments[0][0] == 0:
+ segments[0] = tuple(cur_segment) + segments[0]
+ else:
+ segments.append(tuple(cur_segment))
+ return segments
+
+ # prepare coords to build a lining
+ # fmt: off
+ outer_coords = [
+ (V(0, 0), V(0, size.z)),
+ (V(0, size.z), V(size.x, size.z)),
+ (V(size.x, size.z), V(size.x, 0)),
+ (V(size.x, 0), V(0, 0)),
+ ]
+ inner_coords = [
+ (V(th_left, th_bottom), V(th_left, size.z - th_up)),
+ (V(th_left, size.z - th_up), V(size.x - th_right, size.z - th_up)),
+ (V(size.x - th_right, size.z - th_up), V(size.x - th_right, th_bottom)),
+ (V(size.x - th_right, th_bottom), V(th_left, th_bottom)),
+ ]
+ # fmt: on
+
+ def get_points(segment):
+ points = []
+ for side in segment:
+ outer = outer_coords[side]
+ if side == segment[0]: # first segment
+ points.append(outer[0])
+ points.append(outer[1])
+
+ for side in reversed(segment):
+ inner = inner_coords[side]
+ if side == segment[-1]: # last non zero segment
+ points.append(inner[1])
+ points.append(inner[0])
+ return points
+
+ segments = get_segments_from_thickness()
+ segments_items = []
+ for seg in segments:
+ polyline = builder.polyline(points=get_points(seg), closed=True)
+ panel_profile = builder.profile(polyline)
+ segments_items.append(get_extruded_profile(panel_profile))
+
+ return segments_items
def window_l_shape_check(
lining_to_panel_offset_y_full,
lining_depth,
- lining_to_panel_offset_x,
+ lining_to_panel_offset_x: list,
lining_thickness: list,
):
- """`lining_thickness` expected to be defined as a list,
+ """`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(
- lining_to_panel_offset_x < th for th in lining_thickness
+ x_offset < th for th, x_offset in zip(lining_thickness, lining_to_panel_offset_x, strict=True)
)
return l_shape_check
@@ -95,18 +164,21 @@ def create_ifc_window(
frame_thickness,
glass_thickness,
position: Vector,
+ x_offsets: list = None,
):
- """`lining_thickness` expected to be defined as a list,
+ """`lining_thickness` and `x_offsets` are expected to be defined as a list,
similarly to `create_ifc_window_frame_simple` `thickness` argument"""
lining_items = []
main_lining_size = lining_size
+ if x_offsets is None:
+ x_offsets = [lining_to_panel_offset_x] * 4
# need to check offsets to decide whether lining should be rectangle
# or L shaped
l_shape_check = window_l_shape_check(
lining_to_panel_offset_y_full,
lining_size.y,
- lining_to_panel_offset_x,
+ x_offsets,
lining_thickness,
)
@@ -117,26 +189,26 @@ def create_ifc_window(
second_lining_size = lining_size.copy()
second_lining_size.y = lining_size.y - lining_to_panel_offset_y_full
second_lining_position = V(0, lining_to_panel_offset_y_full, 0)
- second_lining_thickness = [min(th, lining_to_panel_offset_x) for th in lining_thickness]
+ second_lining_thickness = [min(th, x_offset) for th, x_offset in zip(lining_thickness, x_offsets, strict=True)]
- second_lining = create_ifc_window_frame_simple(
+ second_lining_items = create_ifc_window_frame_simple(
builder, second_lining_size, second_lining_thickness, second_lining_position
)
- lining_items.append(second_lining)
+ lining_items.extend(second_lining_items)
- main_lining = create_ifc_window_frame_simple(builder, main_lining_size, lining_thickness)
- lining_items.append(main_lining)
+ main_lining_items = create_ifc_window_frame_simple(builder, main_lining_size, lining_thickness)
+ lining_items.extend(main_lining_items)
frame_position = V(
- lining_to_panel_offset_x,
+ x_offsets[0],
lining_to_panel_offset_y_full,
- lining_to_panel_offset_x,
+ x_offsets[3],
)
- frame_extruded = create_ifc_window_frame_simple(builder, frame_size, frame_thickness, frame_position)
+ frame_extruded_items = create_ifc_window_frame_simple(builder, frame_size, frame_thickness, frame_position)
glass_position = frame_position + V(0, frame_size.y / 2 - glass_thickness / 2, 0)
- glass_rect = builder.deep_copy(frame_extruded.SweptArea.InnerCurves[0])
+ glass_rect = builder.deep_copy(frame_extruded_items[0].SweptArea.InnerCurves[0])
glass = builder.extrude(
glass_rect,
glass_thickness,
@@ -146,7 +218,7 @@ def create_ifc_window(
position=glass_position,
)
- output_items = [lining_items, [frame_extruded], [glass]]
+ output_items = [lining_items, frame_extruded_items, [glass]]
builder.translate(chain(*output_items), position)
return output_items
@@ -272,19 +344,26 @@ class Usecase:
if panel_i in built_panels:
continue
- if unique_cols > 1:
- if column_i == 0:
+ # detect mullion
+ has_mullion = unique_cols > 1
+ first_column = column_i == 0
+ last_column = column_i == unique_cols - 1
+ left_to_mullion = has_mullion and not last_column
+ right_to_mullion = has_mullion and not first_column
+
+ if has_mullion:
+ if first_column:
panel_width = first_mullion_offset
- elif column_i == unique_cols - 1:
+ elif last_column:
panel_width = overall_width - accumulated_width
else:
panel_width = second_mullion_offset - accumulated_width
# mullion thickness
- if column_i != 0:
+ if not first_column:
window_lining_thickness[0] = mullion_thickness # left column
closed_lining[0] = False
- if column_i != unique_cols - 1:
+ if not last_column:
window_lining_thickness[1] = mullion_thickness # right column
closed_lining[1] = False
else:
@@ -292,7 +371,9 @@ class Usecase:
frame_depth = panels[panel_i]["FrameDepth"]
frame_thickness = panels[panel_i]["FrameThickness"]
- lining_to_panel_offset_y_full = overall_depth - frame_depth
+ lining_to_panel_offset_y_full = (lining_depth - frame_depth) + lining_to_panel_offset_y
+ base_frame_clear = lining_to_panel_offset_x + frame_thickness - lining_thickness
+ current_offset_x = base_frame_clear - frame_thickness + mullion_thickness
# add lining
cur_panel_items.append(
@@ -304,20 +385,22 @@ class Usecase:
)
)
- def get_lining_shape(lining_thickness, closed=True, mirror=False):
+ def get_lining_shape(lining_thickness, closed=True, mirror=False, x_offset=None):
+ if x_offset is None:
+ x_offset = lining_to_panel_offset_x
l_shape_check = window_l_shape_check(
lining_to_panel_offset_y_full,
lining_depth,
- lining_to_panel_offset_x,
+ [x_offset],
[lining_thickness],
)
if l_shape_check:
lining_shape = builder.polyline(
[
V(0, lining_depth),
- V(lining_to_panel_offset_x, lining_depth),
+ V(x_offset, lining_depth),
V(
- lining_to_panel_offset_x,
+ x_offset,
lining_to_panel_offset_y_full,
),
V(lining_thickness, lining_to_panel_offset_y_full),
@@ -348,10 +431,15 @@ class Usecase:
cur_panel_items.extend(
[
- get_lining_shape(window_lining_thickness[0], closed=closed_lining[0]),
+ get_lining_shape(
+ window_lining_thickness[0],
+ closed=closed_lining[0],
+ x_offset=current_offset_x if right_to_mullion else None,
+ ),
get_lining_shape(
window_lining_thickness[1],
closed=closed_lining[1],
+ x_offset=current_offset_x if left_to_mullion else None,
mirror=True,
),
]
@@ -359,8 +447,15 @@ class Usecase:
# add frame
frame_items = []
- frame_position = V(lining_to_panel_offset_x, lining_to_panel_offset_y_full)
- frame_width = panel_width - lining_to_panel_offset_x * 2
+
+ frame_position = V(
+ current_offset_x if right_to_mullion else lining_to_panel_offset_x,
+ lining_to_panel_offset_y_full,
+ )
+
+ frame_width = panel_width
+ frame_width -= current_offset_x if left_to_mullion else lining_to_panel_offset_x
+ frame_width -= current_offset_x if right_to_mullion else lining_to_panel_offset_x
frame_vertical = builder.rectangle(size=V(frame_thickness, frame_depth))
frame_items.extend(
@@ -411,39 +506,39 @@ class Usecase:
unique_cols = len(set(panel_row))
for column_i, panel_i in enumerate(panel_row):
- # calculate current panel dimensions
- window_lining_thickness = [lining_thickness] * 4
+ # detect mullion
+ has_mullion = unique_cols > 1
+ first_column = column_i == 0
+ last_column = column_i == unique_cols - 1
+ left_to_mullion = has_mullion and not last_column
+ right_to_mullion = has_mullion and not first_column
- if unique_cols > 1:
+ # detect transom
+ has_transom = unique_rows_in_col[column_i] > 1
+ first_row = row_i == 0
+ last_row = row_i == unique_rows_in_col[column_i] - 1
+ top_to_transom = has_transom and not first_row
+ bottom_to_transom = has_transom and not last_row
+
+ # calculate current panel dimensions
+ if has_mullion:
# panel_width
- if column_i == 0:
+ if first_column:
panel_width = first_mullion_offset
- elif column_i == unique_cols - 1:
+ elif last_column:
panel_width = overall_width - accumulated_width
else:
panel_width = second_mullion_offset - accumulated_width
-
- # mullion thickness
- if column_i != 0:
- window_lining_thickness[0] = mullion_thickness # left column
- if column_i != unique_cols - 1:
- window_lining_thickness[2] = mullion_thickness # right column
else:
panel_width = overall_width
- if unique_rows_in_col[column_i] > 1:
- if row_i == 0:
+ if has_transom:
+ if first_row:
panel_height = first_transom_offset
- elif row_i == unique_rows_in_col[column_i] - 1:
+ elif last_row:
panel_height = overall_height - accumulated_height[column_i]
else:
panel_height = second_transom_offset - accumulated_height[column_i]
-
- # transom thickness
- if row_i != 0:
- window_lining_thickness[3] = transom_thickness # bottom row
- if row_i != unique_rows_in_col[column_i] - 1:
- window_lining_thickness[1] = transom_thickness # top row
else:
panel_height = overall_height
@@ -455,16 +550,37 @@ class Usecase:
cur_panel = panels[panel_i]
frame_depth = cur_panel["FrameDepth"]
frame_thickness = cur_panel["FrameThickness"]
- lining_to_panel_offset_y_full = overall_depth - frame_depth
- current_items = []
+ lining_to_panel_offset_y_full = (lining_depth - frame_depth) + lining_to_panel_offset_y
- frame_width = panel_width - lining_to_panel_offset_x * 2
- frame_height = panel_height - lining_to_panel_offset_x * 2
+ # fmt: off
+ # calculate lining thickness and frame size / offset
+ # taking into account mullions and transoms
+ window_lining_thickness = [
+ mullion_thickness if right_to_mullion else lining_thickness,
+ transom_thickness if bottom_to_transom else lining_thickness,
+ mullion_thickness if left_to_mullion else lining_thickness,
+ transom_thickness if top_to_transom else lining_thickness,
+ ]
+
+ # x offsets can differ if there are mullions or transoms because we're trying to maintain symmetry
+ base_frame_clear = lining_to_panel_offset_x + frame_thickness - lining_thickness
+ current_offset_x = base_frame_clear - frame_thickness + mullion_thickness
+ current_offset_z = base_frame_clear - frame_thickness + transom_thickness
+ x_offsets = [
+ current_offset_x if right_to_mullion else lining_to_panel_offset_x, # LEFT
+ current_offset_z if bottom_to_transom else lining_to_panel_offset_x, # TOP
+ current_offset_x if left_to_mullion else lining_to_panel_offset_x, # RIGHT
+ current_offset_z if top_to_transom else lining_to_panel_offset_x, # BOTTOM
+ ]
+ # fmt: on
window_lining_size = V(panel_width, lining_depth, panel_height)
- frame_size = V(frame_width, frame_depth, frame_height)
- window_panel_position = V(accumulated_width, 0, accumulated_height[column_i])
+ frame_size = window_lining_size.copy()
+ frame_size.y = frame_depth
+ frame_size.x -= x_offsets[0] + x_offsets[2]
+ frame_size.z -= x_offsets[1] + x_offsets[3]
+ window_panel_position = V(accumulated_width, 0, accumulated_height[column_i])
# create window panel
current_window_items = create_ifc_window(
builder,
@@ -476,6 +592,7 @@ class Usecase:
frame_thickness,
glass_thickness,
window_panel_position,
+ x_offsets,
)
built_panels.append(panel_i)
window_items.extend(chain(*current_window_items))
diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py
index 46fee7b392..1dfe55312e 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py
@@ -174,23 +174,51 @@ class Usecase:
self.psetqto = ifcopenshell.util.pset.get_template(self.file.schema)
self.pset_template = self.psetqto.get_by_name(self.settings["pset"].Name)
+ def _should_update_prop(self, prop) -> bool:
+ """
+ Checks if the given property should be changed
+ """
+ return prop.Name in self.settings["properties"]
+
+ def _try_purge(self, prop) -> bool:
+ """
+ Tries to remove the property
+ if successful, returns True, otherwise False
+ NOTE: Assumes the prop exists
+ """
+ if not self.settings["should_purge"]:
+ return False
+
+ del self.settings["properties"][prop.Name]
+ self.file.remove(prop)
+ return True
+
# TODO - Add support for changing property types?
# For example - IfcPropertyEnumeratedValue to
# IfcPropertySingleValue. Or maybe the user should
# just delete the property first? - vulevukusej
def update_existing_properties(self):
for prop in self.get_properties():
- if prop.is_a("IfcPropertyEnumeratedValue"):
- self.update_existing_enum(prop)
- else:
- self.update_existing_property(prop)
+ if not self._should_update_prop(prop):
+ continue
- def update_existing_enum(self, prop):
- if prop.Name not in self.settings["properties"]:
- return
+ if prop.is_a("IfcPropertyEnumeratedValue"):
+ self.update_existing_prop_enum(prop)
+
+ elif prop.is_a("IfcPropertySingleValue"):
+ self.update_existing_prop_single_value(prop)
+
+ else:
+ raise NotImplementedError(f"Updating '{prop.is_a()}' properties is not supported yet")
+
+ def update_existing_prop_enum(self, prop):
+ """
+ NOTE: Assumes the prop exists
+ """
value = self.settings["properties"][prop.Name]
unit, value = self.unpack_unit_value(value)
- if isinstance(value, list):
+
+ if isinstance(value, (tuple, list)):
sel_vals = []
for val in value:
primary_measure_type = prop.EnumerationReference.EnumerationValues[
@@ -199,30 +227,33 @@ class Usecase:
ifc_val = self.file.create_entity(primary_measure_type, val)
sel_vals.append(ifc_val)
prop.EnumerationValues = tuple(sel_vals) or None
- else:
- if value.EnumerationReference.EnumerationValues == ():
- if self.settings["should_purge"]:
- del self.settings["properties"][prop.Name]
- self.file.remove(prop)
+
+ elif (
+ isinstance(value, ifcopenshell.entity_instance)
+ and value.is_a("IfcPropertyEnumeratedValue")
+ ):
+ if not value.EnumerationReference.EnumerationValues:
+ if self._try_purge(prop):
return
prop.EnumerationReference.EnumerationValues = None
prop.EnumerationValues = None
- elif isinstance(value, ifcopenshell.entity_instance):
+
+ else:
prop.EnumerationReference.EnumerationValues = value.EnumerationReference.EnumerationValues
prop.EnumerationValues = value.EnumerationValues
+
if unit:
prop.Unit = unit
del self.settings["properties"][prop.Name]
- def update_existing_property(self, prop):
- if prop.Name not in self.settings["properties"]:
- return
+ def update_existing_prop_single_value(self, prop):
+ """
+ NOTE: Assumes the prop exists
+ """
value = self.settings["properties"][prop.Name]
unit, value = self.unpack_unit_value(value)
if value is None:
- if self.settings["should_purge"]:
- del self.settings["properties"][prop.Name]
- self.file.remove(prop)
+ if self._try_purge(prop):
return
prop.NominalValue = None
elif isinstance(value, ifcopenshell.entity_instance):
@@ -243,23 +274,49 @@ class Usecase:
if value is None:
continue
unit, value = self.unpack_unit_value(value)
+
if isinstance(value, ifcopenshell.entity_instance):
- if value.is_a(True) == "IFC4.IfcPropertyEnumeratedValue":
+ if value.is_a("IfcProperty"):
properties.append(value)
- continue
- else:
- args = {"Name": name, "NominalValue": value}
+
+ # If it's not an entity, then it's a primitive data type
+ elif not value.is_entity():
+ kwargs = {"Name": name, "NominalValue": value}
if unit:
- args["Unit"] = unit
+ kwargs["Unit"] = unit
properties.append(
- self.file.create_entity("IfcPropertySingleValue", **args)
+ self.file.create_entity("IfcPropertySingleValue", **kwargs)
)
- # TODO-The following "elif" is temporary code, will need to refactor at some point - vulevukusej
- elif isinstance(value, list):
+
+ else:
+ raise ValueError(f"{value.is_a()} cannot be assigned to the property set '{name}'")
+
+ elif isinstance(value, (tuple, list)):
if not value:
continue
for pset_template in self.pset_template.HasPropertyTemplates:
- if pset_template.Name == name:
+ if pset_template.Name != name:
+ continue
+
+ if pset_template.TemplateType == "P_LISTVALUE":
+ ifc_class = getattr(pset_template, "PrimaryMeasureType", None)
+ if ifc_class is None:
+ raise ValueError(f"pset template '{pset_template.Name}' is missing PrimaryMeasureType")
+
+ properties.append(
+ self.file.create_entity(
+ "IfcPropertyListValue",
+ Name=name,
+ ListValues=[
+ self.file.create_entity(ifc_class, v)
+ for v in value
+ ],
+ Unit=unit
+ )
+ )
+ break
+
+ elif pset_template.TemplateType == "P_ENUMERATEDVALUE":
prop_enum = self.file.create_entity(
"IFCPROPERTYENUMERATION",
Name=name,
@@ -275,7 +332,13 @@ class Usecase:
EnumerationReference=prop_enum,
)
properties.append(prop_enum_value)
- continue
+ break
+
+ raise NotImplementedError(f"Template type '{pset_template.TemplateType}' is not supported yet")
+
+ else:
+ raise NotImplementedError(f"No template found for property '{name}'")
+
else:
primary_measure_type = self.get_primary_measure_type(name, new_value=value)
value = self.cast_value_to_primary_measure_type(value, primary_measure_type)
@@ -298,11 +361,17 @@ class Usecase:
self.settings["pset"].Properties = props
def get_properties(self):
+ """
+ Returns list of existing properties
+ """
if hasattr(self.settings["pset"], "HasProperties"):
return self.settings["pset"].HasProperties or []
+
elif hasattr(self.settings["pset"], "Properties"): # For IfcMaterialProperties
return self.settings["pset"].Properties or []
+ raise TypeError(f"'{self.settings['pset']}' is not a valid pset")
+
def get_primary_measure_type(self, name, old_value=None, new_value=None):
if self.pset_template:
for prop_template in self.pset_template.HasPropertyTemplates:
@@ -344,10 +413,14 @@ class Usecase:
@staticmethod
def unpack_unit_value(value_candidate):
- unit = None
+ """
+ Returns tuple of the format: (Unit, NominalValue)
+ NOTE: Unit fallbacks to None
+ """
+ if value_candidate is None:
+ return (None, None)
+
if isinstance(value_candidate, dict): # Custom IfcUnits can be passed in a dict along with the pset value
- unit = value_candidate["Unit"]
- value = value_candidate["NominalValue"]
- else:
- value = value_candidate
- return unit, value
+ return (value_candidate["Unit"], value_candidate["NominalValue"])
+
+ return (None, value_candidate)
diff --git a/src/ifcopenshell-python/ifcopenshell/draw.py b/src/ifcopenshell-python/ifcopenshell/draw.py
index 04f1b3a39d..3e1a25d149 100644
--- a/src/ifcopenshell-python/ifcopenshell/draw.py
+++ b/src/ifcopenshell-python/ifcopenshell/draw.py
@@ -59,6 +59,7 @@ class draw_settings:
cells: bool = True
merge_cells: bool = False
include_projection: bool = True
+ prefilter: bool = True
def main(settings, files, iterators=None, merge_projection=True, progress_function=DO_NOTHING):
@@ -131,6 +132,8 @@ def main(settings, files, iterators=None, merge_projection=True, progress_functi
if settings.subtract_before_hlr:
sr.setSubtractionSettings(W.ALWAYS)
+ sr.setUsePrefiltering(settings.prefilter)
+
try:
sh = ["none", "full", "left"].index(settings.storey_heights)
sr.setDrawStoreyHeights(sh)
diff --git a/src/ifcopenshell-python/ifcopenshell/entity_instance.py b/src/ifcopenshell-python/ifcopenshell/entity_instance.py
index cc8d0adbc4..3941e2263f 100644
--- a/src/ifcopenshell-python/ifcopenshell/entity_instance.py
+++ b/src/ifcopenshell-python/ifcopenshell/entity_instance.py
@@ -40,7 +40,7 @@ except ImportError as e:
def set_derived_attribute(*args):
raise TypeError("Unable to set derived attribute")
-
+
def set_unsupported_attribute(*args):
raise TypeError("This is an unsupported attribute type")
@@ -83,8 +83,7 @@ def register_schema_attributes(schema):
functions = [
set_derived_attribute
if mname == "setArgumentAsDerived"
- else
- set_unsupported_attribute
+ else set_unsupported_attribute
if mname == "setArgumentAsUnknown"
else getattr(ifcopenshell_wrapper.entity_instance, mname)
for mname in fn_names
@@ -139,18 +138,12 @@ class entity_instance(object):
idx = self.wrapped_data.get_argument_index(name)
if _method_dict[self.is_a(True)][idx] != set_derived_attribute:
# A bit ugly, but we fall through to derived attribute handling below
- return entity_instance.wrap_value(
- self.wrapped_data.get_argument(idx), self.wrapped_data.file
- )
+ return entity_instance.wrap_value(self.wrapped_data.get_argument(idx), self.wrapped_data.file)
elif attr_cat == INVERSE:
- vs = entity_instance.wrap_value(
- self.wrapped_data.get_inverse(name), self.wrapped_data.file
- )
+ vs = entity_instance.wrap_value(self.wrapped_data.get_inverse(name), self.wrapped_data.file)
if settings.unpack_non_aggregate_inverses:
schema_name = self.wrapped_data.is_a(True).split(".")[0]
- ent = ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(
- self.is_a()
- )
+ ent = ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(self.is_a())
inv = [i for i in ent.all_inverse_attributes() if i.name() == name][0]
if (inv.bound1(), inv.bound2()) == (-1, -1):
if vs:
@@ -164,9 +157,7 @@ class entity_instance(object):
rules = importlib.import_module(f"ifcopenshell.express.rules.{schema_name}")
def yield_supertypes():
- decl = ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(
- self.is_a()
- )
+ decl = ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(self.is_a())
while decl:
yield decl.name()
decl = decl.supertype()
@@ -178,8 +169,7 @@ class entity_instance(object):
if attr_cat != FORWARD:
raise AttributeError(
- "entity instance of type '%s' has no attribute '%s'"
- % (self.wrapped_data.is_a(True), name)
+ "entity instance of type '%s' has no attribute '%s'" % (self.wrapped_data.is_a(True), name)
)
@staticmethod
@@ -218,11 +208,7 @@ class entity_instance(object):
:type attr: int
:rtype: string
"""
- attr_idx = (
- attr
- if isinstance(attr, numbers.Integral)
- else self.wrapped_data.get_argument_index(attr)
- )
+ attr_idx = attr if isinstance(attr, numbers.Integral) else self.wrapped_data.get_argument_index(attr)
return self.wrapped_data.get_argument_type(attr_idx)
def attribute_name(self, attr_idx):
@@ -240,23 +226,15 @@ class entity_instance(object):
def __getitem__(self, key):
if key < 0 or key >= len(self):
- raise IndexError(
- "Attribute index {} out of range for instance of type {}".format(
- key, self.is_a()
- )
- )
- return entity_instance.wrap_value(
- self.wrapped_data.get_argument(key), self.wrapped_data.file
- )
+ raise IndexError("Attribute index {} out of range for instance of type {}".format(key, self.is_a()))
+ return entity_instance.wrap_value(self.wrapped_data.get_argument(key), self.wrapped_data.file)
def __setitem__(self, idx, value):
if self.wrapped_data.file and self.wrapped_data.file.transaction:
self.wrapped_data.file.transaction.store_edit(self, idx, value)
if self.method_list is None:
- super(entity_instance, self).__setattr__(
- "method_list", _method_dict[self.is_a(True)]
- )
+ super(entity_instance, self).__setattr__("method_list", _method_dict[self.is_a(True)])
method = self.method_list[idx]
@@ -264,9 +242,7 @@ class entity_instance(object):
if method is not set_derived_attribute:
self.wrapped_data.setArgumentAsNull(idx)
else:
- self.method_list[idx](
- self.wrapped_data, idx, entity_instance.unwrap_value(value)
- )
+ self.method_list[idx](self.wrapped_data, idx, entity_instance.unwrap_value(value))
return value
@@ -323,9 +299,9 @@ class entity_instance(object):
elif None in (self.wrapped_data.file, other.wrapped_data.file):
# when not added to a file, we can only compare attribute values
# and we need this for where rule evaluation
- return self.get_info(
+ return self.get_info(recursive=True, include_identifier=False) == other.get_info(
recursive=True, include_identifier=False
- ) == other.get_info(recursive=True, include_identifier=False)
+ )
else:
# Proper entity instances have a stable identity by means of the numeric
# step id. Selected type instances (such as IfcPropertySingleValue.NominalValue
@@ -346,9 +322,7 @@ class entity_instance(object):
bool: 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()
- )
+ decl = ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(self.is_a())
return isinstance(decl, ifcopenshell_wrapper.entity)
def compare(self, other, op, reverse=False):
@@ -436,9 +410,7 @@ class entity_instance(object):
)
)
- def get_info(
- self, include_identifier=True, recursive=False, return_type=dict, ignore=(), scalar_only=False
- ):
+ def get_info(self, include_identifier=True, recursive=False, return_type=dict, ignore=(), scalar_only=False):
"""Return a dictionary of the entity_instance's properties (Python and IFC) and their values.
:param include_identifier: Whether or not to include the STEP numerical identifier
@@ -472,18 +444,14 @@ class entity_instance(object):
yield "id", self.id()
yield "type", self.is_a()
except BaseException:
- logging.exception(
- "unhandled exception while getting id / type info on {}".format(
- self
- )
- )
+ logging.exception("unhandled exception while getting id / type info on {}".format(self))
for i in range(len(self)):
try:
if self.wrapped_data.get_attribute_names()[i] in ignore:
continue
attr_value = self[i]
- to_include = {'v': True}
+ to_include = {"v": True}
if recursive or scalar_only:
@@ -500,29 +468,23 @@ class entity_instance(object):
)
def do_ignore(inst):
- to_include['v'] = False
+ to_include["v"] = False
return None
attr_value = entity_instance.walk(
is_instance, get_info_ if recursive else do_ignore, attr_value
)
- if to_include['v']:
+ if to_include["v"]:
yield self.attribute_name(i), attr_value
except BaseException:
- logging.exception(
- "unhandled exception occurred setting attribute name for {}".format(
- self
- )
- )
+ logging.exception("unhandled exception occurred setting attribute name for {}".format(self))
return return_type(_())
__dict__ = property(get_info)
- def get_info_2(
- self, include_identifier=True, recursive=False, return_type=dict, ignore=()
- ):
+ def get_info_2(self, include_identifier=True, recursive=False, return_type=dict, ignore=()):
assert include_identifier
assert recursive
assert return_type is dict
diff --git a/src/ifcopenshell-python/ifcopenshell/express/implementation.py b/src/ifcopenshell-python/ifcopenshell/express/implementation.py
index 2e32e38829..24123532ba 100644
--- a/src/ifcopenshell-python/ifcopenshell/express/implementation.py
+++ b/src/ifcopenshell-python/ifcopenshell/express/implementation.py
@@ -85,7 +85,6 @@ class Implementation(codegen.Base):
def find_template(arg):
simple = mapping.schema.is_simpletype(arg["list_instance_type"])
- select = arg["list_instance_type"] == "IfcUtil::IfcBaseClass"
express = (
mapping.flatten_type_string(arg["list_instance_type"]) in mapping.express_to_cpp_typemapping
)
@@ -93,7 +92,7 @@ class Implementation(codegen.Base):
return templates.get_attr_stmt_enum
elif arg["is_nested"] and arg["is_templated_list"]:
return templates.get_attr_stmt_nested_array
- elif arg["is_templated_list"] and not (select or simple or express):
+ elif arg["is_templated_list"] and not (simple or express):
return templates.get_attr_stmt_array
elif arg["non_optional_type"].endswith("*"):
return templates.get_attr_stmt_entity
diff --git a/src/ifcopenshell-python/ifcopenshell/express/mapping.py b/src/ifcopenshell-python/ifcopenshell/express/mapping.py
index a9ade4a9b3..f32cc0fae3 100644
--- a/src/ifcopenshell-python/ifcopenshell/express/mapping.py
+++ b/src/ifcopenshell-python/ifcopenshell/express/mapping.py
@@ -179,9 +179,13 @@ class Mapping:
# We do not use pointers in aggregate_of. aggregate_of has member vector
ty = ty.replace("*", "")
- if self.schema.is_select(attr_type.type):
- type_str = templates.untyped_list
- elif self.schema.is_simpletype(ty) or str(ty) in self.express_to_cpp_typemapping.values():
+ # https://github.com/IfcOpenShell/IfcOpenShell/issues/2805
+ # This is no longer applicable, we do support statically typed select types as aggregates
+ #
+ # if self.schema.is_select(attr_type.type):
+ # type_str = templates.untyped_list
+
+ if self.schema.is_simpletype(ty) or str(ty) in self.express_to_cpp_typemapping.values():
tmpl = templates.nested_array_type if is_nested_list else templates.array_type
bounds = (attr_type.bounds.lower, attr_type.bounds.upper) if attr_type.bounds else (-1, -1)
type_str = tmpl % {"instance_type": ty, "lower": bounds[0], "upper": bounds[1]}
@@ -220,9 +224,9 @@ class Mapping:
isinstance(v, nodes.SimpleType) and isinstance(v.type, nodes.StringType)
):
return "string"
- if self.schema.is_select(v):
- return "IfcUtil::IfcBaseClass"
- elif str(v) in self.schema.types or str(v) in self.schema.entities:
+ # if self.schema.is_select(v):
+ # return "IfcUtil::IfcBaseClass"
+ if str(v) in self.schema.types or str(v) in self.schema.entities:
return "::%s::%s" % (self.schema.name.capitalize(), v)
else:
return str(v)
diff --git a/src/ifcopenshell-python/ifcopenshell/express/templates.py b/src/ifcopenshell-python/ifcopenshell/express/templates.py
index 3b0b043e9f..ad9ef898de 100644
--- a/src/ifcopenshell-python/ifcopenshell/express/templates.py
+++ b/src/ifcopenshell-python/ifcopenshell/express/templates.py
@@ -142,6 +142,7 @@ select = """%(documentation)s
class IFC_PARSE_API %(name)s : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< %(name)s > list;
};
"""
diff --git a/src/ifcopenshell-python/ifcopenshell/sql.py b/src/ifcopenshell-python/ifcopenshell/sql.py
new file mode 100644
index 0000000000..df1ad206fe
--- /dev/null
+++ b/src/ifcopenshell-python/ifcopenshell/sql.py
@@ -0,0 +1,374 @@
+try:
+ import re
+ import json
+
+ import ifcopenshell.util.schema
+ from .file import file
+ from . import ifcopenshell_wrapper
+ from .entity_instance import entity_instance
+except ImportError as e:
+ print(f"No SQL support: {e}")
+
+
+class sqlite(file):
+ def __init__(self, filepath):
+ import sqlite3
+
+ self.wrapped_data = None
+ self.history_size = 64
+ self.history = []
+ self.future = []
+ self.transaction = None
+
+ self.filepath = filepath
+ self.db = sqlite3.connect(self.filepath)
+ self.db.row_factory = sqlite3.Row
+
+ # import mysql.connector
+ # self.db = mysql.connector.connect(
+ # host="localhost",
+ # user="root",
+ # password="root",
+ # database="test"
+ # )
+
+ self.cursor = self.db.cursor()
+
+ try:
+ self.cursor.execute("SELECT preprocessor, schema, mvd FROM metadata LIMIT 1")
+ row = self.cursor.fetchone()
+ if row[0] != "IfcOpenShell-1.0.0":
+ assert False, "SQLite schema not supported."
+ except:
+ assert False, "SQLite schema not supported."
+
+ self.schema = row[1]
+ self.ifc_schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(self.schema)
+
+ self.cursor.execute("SELECT ifc_id, ifc_class FROM id_map")
+ self.id_map = {}
+ self.class_map = {}
+ self.entity_cache = {}
+ for row in self.cursor.fetchall():
+ self.id_map[row[0]] = row[1]
+ self.class_map.setdefault(row[1], []).append(row[0])
+
+ self.preprocess_schema()
+
+ def preprocess_schema(self):
+ self.ifc_class_subtypes = {}
+ self.ifc_class_attributes = {}
+ self.ifc_class_inverse_attributes = {}
+ self.ifc_class_references = {}
+ self.ifc_class_inverses = {}
+
+ for declaration in self.ifc_schema.declarations():
+ if not str(declaration).startswith("", str(attribute)):
+ attribute_entity = self.ifc_schema.declaration_by_name(entity_name)
+ for subtype in ifcopenshell.util.schema.get_subtypes(attribute_entity):
+ # self.ifc_class_inverses.setdefault(subtype.name(), set()).add(declaration.name())
+ self.ifc_class_inverses.setdefault(subtype.name(), {})
+ self.ifc_class_inverses[subtype.name()].setdefault(declaration.name(), [])
+ self.ifc_class_inverses[subtype.name()][declaration.name()].append(attribute.name())
+
+ self.ifc_class_references[declaration.name()] = {"entity": entity, "entity_list": entity_list}
+
+ def clear_cache(self):
+ self.entity_cache = {}
+
+ def create_entity(self, type, *args, **kawrgs):
+ assert False
+
+ def by_id(self, id):
+ entity = self.entity_cache.get(id, None)
+ if entity:
+ return entity
+ ifc_class = self.id_map.get(id, None)
+ if ifc_class:
+ entity = sqlite_entity(id, ifc_class, self)
+ self.entity_cache[id] = entity
+ return entity
+ self.cursor.execute("SELECT ifc_id, ifc_class FROM id_map LIMIT 1")
+ row = self.cursor.fetchone()
+ if row:
+ self.id_map[row[0]] = row[1]
+ entity = sqlite_entity(id, ifc_class, self)
+ self.entity_cache[id] = entity
+ return entity
+
+ def by_type(self, type, include_subtypes=True):
+ if self.class_map:
+ results = []
+ subtypes = self.ifc_class_subtypes[type] if include_subtypes else self.ifc_class_subtypes[type][0:1]
+ for subtype in subtypes:
+ results.extend([self.by_id(i) for i in self.class_map.get(subtype.name(), [])])
+ return results
+ if include_subtypes:
+ declaration = self.ifc_schema.declaration_by_name(type)
+ subtypes = ",".join([f"'{st.name()}'" for st in ifcopenshell.util.schema.get_subtypes(declaration)])
+ self.cursor.execute(f"SELECT ifc_id, ifc_class FROM id_map WHERE ifc_class IN ({subtypes})")
+ rows = self.cursor.fetchall()
+ return [self.by_id(r[0]) for r in rows]
+ self.cursor.execute(f"SELECT ifc_id FROM id_map WHERE ifc_class='{type}'")
+ rows = self.cursor.fetchall()
+ return [self.by_id(r[0]) for r in rows]
+
+ def traverse(self, inst, max_levels=None, breadth_first=False):
+ results = [inst]
+ queue = [inst]
+ while queue:
+ if max_levels is not None:
+ max_levels -= 1
+
+ cur = queue.pop()
+ reference_attributes = self.ifc_class_references[cur.sqlite_wrapper.ifc_class]
+ attributes = reference_attributes["entity"] + reference_attributes["entity_list"]
+ if not attributes:
+ continue
+
+ for attribute in attributes:
+ result = getattr(cur, attribute, [])
+ if not result:
+ continue
+ elif isinstance(result, tuple):
+ results.extend(result)
+ if max_levels is None or max_levels:
+ queue.extend(result)
+ else:
+ results.append(result)
+ if max_levels is None or max_levels:
+ queue.append(result)
+ # print('traverse results', results)
+ return results
+
+ def get_inverse(self, inst, allow_duplicate=False, with_attribute_indices=False):
+ query = f"SELECT inverses FROM {inst.sqlite_wrapper.ifc_class} WHERE `ifc_id` = {inst.sqlite_wrapper.id} LIMIT 1"
+ self.cursor.execute(query)
+ row = self.cursor.fetchone()
+ if not row or not row[0]:
+ return set()
+ return {self.by_id(e) for e in json.loads(row[0])}
+
+ def is_entity_list(self, attribute):
+ attribute = str(attribute.type_of_attribute())
+ if (attribute.startswith("
", attribute):
+ if data_type not in ("list", "set", "select", "entity"):
+ return False
+ return True
+ return False
+
+ def get_geometry(self, ids):
+ import numpy as np
+
+ ids_csv = ",".join(map(str, ids))
+ query = f"SELECT ifc_id, x, y, z, matrix, geometry, verts, edges, faces, material_ids, materials FROM shape LEFT JOIN geometry ON shape.geometry = geometry.id WHERE `ifc_id` IN ({ids_csv})"
+ self.cursor.execute(query)
+ rows = self.cursor.fetchall()
+ shapes = {}
+ geometry = {}
+ for row in rows:
+ if row["geometry"] and row["geometry"] not in geometry:
+ geometry[row["geometry"]] = {
+ "verts": np.frombuffer(row["verts"]).tolist() if row["verts"] else [],
+ "edges": np.frombuffer(row["edges"], dtype=np.int64).tolist() if row["edges"] else [],
+ "faces": np.frombuffer(row["faces"], dtype=np.int64).tolist() if row["faces"] else [],
+ "material_ids": np.frombuffer(row["material_ids"], dtype=np.int64).tolist()
+ if row["material_ids"]
+ else [],
+ "materials": json.loads(row["materials"]) if row["materials"] else [],
+ }
+ shapes[row["ifc_id"]] = {
+ "co": [row["x"], row["y"], row["z"]],
+ "matrix": np.copy(np.frombuffer(row["matrix"]).reshape((4, 4))),
+ "geometry": row["geometry"],
+ }
+ ids_without_geometry = set(ids) - set(shapes.keys())
+ for id in ids_without_geometry:
+ shapes[id] = {
+ "co": [0.0, 0.0, 0.0],
+ "matrix": np.eye(4),
+ "geometry": None,
+ }
+ return {"shapes": shapes, "geometry": geometry}
+
+
+class sqlite_entity(entity_instance):
+ def __init__(self, id, ifc_class, file=None):
+ if not ifc_class:
+ print(id, ifc_class, file)
+ assert False
+ e = ifcopenshell_wrapper.new_IfcBaseClass(file.schema, ifc_class)
+ s = sqlite_wrapper(id, ifc_class, file)
+ super(entity_instance, self).__setattr__("wrapped_data", e)
+ super(entity_instance, self).__setattr__("sqlite_wrapper", s)
+
+ def id(self):
+ return self.sqlite_wrapper.id
+
+ def __del__(self):
+ pass
+
+ def __getitem__(self, key):
+ return self.__getattr__(list(self.sqlite_wrapper.attributes.keys())[key])
+
+ def __setattr__(self, key, value):
+ # query = f"UPDATE `{self.sqlite_wrapper.ifc_class}` SET `{key}`='' WHERE `ifc_id` = {self.sqlite_wrapper.id}"
+ query = f"UPDATE `{self.sqlite_wrapper.ifc_class}` SET `{key}` = ? WHERE ifc_id = {self.sqlite_wrapper.id}"
+ self.sqlite_wrapper.file.cursor.execute(query, (value,))
+ self.sqlite_wrapper.file.db.commit()
+ self.sqlite_wrapper.attribute_cache = {}
+
+ def __getattr__(self, name):
+ # print("*" * 100)
+ # print("GETATTR", self.sqlite_wrapper.id, self.sqlite_wrapper.ifc_class, name)
+
+ INVALID, FORWARD, INVERSE = range(3)
+ attr_cat = self.wrapped_data.get_attribute_category(name)
+ if attr_cat == FORWARD:
+ if self.sqlite_wrapper.attribute_cache:
+ # print(self.sqlite_wrapper.ifc_class)
+ # print(self.sqlite_wrapper.attribute_cache)
+ return self.sqlite_wrapper.attribute_cache[name]
+
+ # print('first time for', self.sqlite_wrapper.ifc_class)
+
+ # print("IT IS A FORWARD")
+ query = f"SELECT * FROM {self.sqlite_wrapper.ifc_class} WHERE `ifc_id` = {self.sqlite_wrapper.id} LIMIT 1"
+ self.sqlite_wrapper.file.cursor.execute(query)
+ row = self.sqlite_wrapper.file.cursor.fetchone()
+
+ for attribute in self.sqlite_wrapper.attributes.values():
+ # attribute = self.sqlite_wrapper.attributes[name]
+ aname = attribute.name()
+ primitive = ifcopenshell.util.attribute.get_primitive_type(attribute)
+
+ if not row or row[aname] is None:
+ self.sqlite_wrapper.attribute_cache[aname] = None
+ elif primitive == "entity":
+ self.sqlite_wrapper.attribute_cache[aname] = self.sqlite_wrapper.file.by_id(row[aname])
+ elif isinstance(primitive, tuple):
+ if isinstance(row[aname], int):
+ self.sqlite_wrapper.attribute_cache[aname] = self.sqlite_wrapper.file.by_id(row[aname])
+ else:
+ self.sqlite_wrapper.attribute_cache[aname] = self.unserialise_value(json.loads(row[aname]))
+ else:
+ self.sqlite_wrapper.attribute_cache[aname] = row[aname]
+ if isinstance(self.sqlite_wrapper.attribute_cache[aname], list):
+ self.sqlite_wrapper.attribute_cache[aname] = tuple(self.sqlite_wrapper.attribute_cache[aname])
+ return self.sqlite_wrapper.attribute_cache[name]
+ elif attr_cat == INVERSE:
+ if self.sqlite_wrapper.inverse_attribute_cache:
+ results = self.sqlite_wrapper.inverse_attribute_cache.get(name, None)
+ if results is not None:
+ return results
+
+ results = []
+
+ query = f"SELECT inverses FROM {self.sqlite_wrapper.ifc_class} WHERE `ifc_id` = {self.sqlite_wrapper.id} LIMIT 1"
+ self.sqlite_wrapper.file.cursor.execute(query)
+ row = self.sqlite_wrapper.file.cursor.fetchone()
+ if not row or not row[0]:
+ self.sqlite_wrapper.inverse_attribute_cache[name] = tuple()
+ return self.sqlite_wrapper.inverse_attribute_cache[name]
+
+ attribute = self.sqlite_wrapper.inverse_attributes[name]
+ entity_class = attribute.entity_reference().name()
+ declaration = self.sqlite_wrapper.file.ifc_schema.declaration_by_name(entity_class)
+ forward_name = attribute.attribute_reference().name()
+
+ subtypes = [st.name() for st in ifcopenshell.util.schema.get_subtypes(declaration)]
+ element_ids = json.loads(row[0])
+ for element_id in element_ids:
+ ifc_class = self.sqlite_wrapper.file.id_map[element_id]
+ if ifc_class in subtypes:
+ potential_result = self.sqlite_wrapper.file.by_id(element_id)
+ forward_value = getattr(potential_result, forward_name, None)
+ if not forward_value:
+ pass
+ elif isinstance(forward_value, tuple):
+ if self.sqlite_wrapper.id in [e.id() for e in forward_value]:
+ results.append(potential_result)
+ elif forward_value.id() == self.sqlite_wrapper.id:
+ results.append(potential_result)
+
+ self.sqlite_wrapper.inverse_attribute_cache[name] = tuple(results)
+ return self.sqlite_wrapper.inverse_attribute_cache[name]
+
+ raise AttributeError(
+ "entity instance of type '%s' has no attribute '%s'" % (self.wrapped_data.is_a(True), name)
+ )
+
+ def unserialise_value(self, value):
+ if isinstance(value, (tuple, list)):
+ for i, value2 in enumerate(value):
+ value[i] = self.unserialise_value(value2)
+ return value
+ elif isinstance(value, int):
+ return self.sqlite_wrapper.file.by_id(value)
+ elif isinstance(value, dict):
+ value2 = ifcopenshell.create_entity(value["type"])
+ value2[0] = value["value"]
+ return value2
+ return value
+
+ def __eq__(self, other):
+ if not isinstance(self, type(other)):
+ return False
+ elif None in (self.sqlite_wrapper.file, other.sqlite_wrapper.file):
+ assert False # not implemented
+ if self.sqlite_wrapper.id:
+ return self.sqlite_wrapper.id == other.sqlite_wrapper.id
+ assert False # not implemented
+
+ def __hash__(self):
+ if self.sqlite_wrapper.id:
+ return hash((self.sqlite_wrapper.id, self.sqlite_wrapper.file.filepath))
+
+ def get_info(self, include_identifier=True, recursive=False, return_type=dict, ignore=(), scalar_only=False):
+ info = {"id": self.sqlite_wrapper.id, "type": self.sqlite_wrapper.ifc_class}
+ if not self.sqlite_wrapper.attribute_cache:
+ self.__getitem__(0) # This will get all attributes
+ info.update(self.sqlite_wrapper.attribute_cache)
+ return info
+
+
+class sqlite_wrapper:
+ def __init__(self, id, ifc_class, file):
+ self.id = id
+ self.ifc_class = ifc_class
+ self.file = file
+ self.attributes = self.file.ifc_class_attributes[self.ifc_class]
+ self.inverse_attributes = self.file.ifc_class_inverse_attributes[self.ifc_class]
+ self.attribute_cache = {}
+ self.inverse_attribute_cache = {}
+
+ def __repr__(self):
+ return "todo"
diff --git a/src/ifcopenshell-python/ifcopenshell/stream.py b/src/ifcopenshell-python/ifcopenshell/stream.py
new file mode 100644
index 0000000000..df6ba552f5
--- /dev/null
+++ b/src/ifcopenshell-python/ifcopenshell/stream.py
@@ -0,0 +1,381 @@
+try:
+ import re
+
+ import ifcopenshell.util.schema
+ from .file import file
+ from . import ifcopenshell_wrapper
+ from .entity_instance import entity_instance
+
+ from lark import Lark, Transformer
+
+ class StreamTransformer(Transformer):
+ def string(self, items):
+ return str(items[0])[1:-1]
+
+ def float(self, items):
+ return float(items[0])
+
+ def ifcint(self, items):
+ return int(items[0])
+
+ def null(self, items):
+ return None
+
+ def derived(self, items):
+ return None
+
+ def enum(self, items):
+ if items[0] == ".T.":
+ return True
+ elif items[0] == ".F.":
+ return False
+ elif items[0] == ".U.":
+ return "UNKNOWN"
+ return str(items[0])[1:-1]
+
+ def list(self, items):
+ # List is always called twice, I think due to an ambiguity in the Lark
+ # definition between a list and an arg, but I'm not quite sure.
+ # print('calling list with', items)
+ if items and isinstance(items[0], dict):
+ return tuple(items[0]["list"])
+ return {"list": items}
+
+ def inline_type(self, items):
+ # inline_type is also always called twice. Why?
+ if items and isinstance(items[0], dict):
+ return items[0]["inline_type"]
+ entity = ifcopenshell.create_entity(items[0])
+ entity[0] = items[1]
+ return {"inline_type": entity}
+
+ def reference(self, items):
+ return self.file.by_id(int(items[0][1:]))
+
+ def arg(self, items):
+ return items[0]
+
+ def args(self, items):
+ return items
+
+ def start(self, items):
+ return (int(items[0]), str(items[1]), items[2])
+
+
+ class stream(file):
+ def __init__(self, filepath):
+ self.wrapped_data = None
+ self.history_size = 64
+ self.history = []
+ self.future = []
+ self.transaction = None
+
+ self.filepath = filepath
+
+ self.file = open(filepath, "r")
+ self.id_map = {}
+ self.class_map = {}
+ self.id_offset = {}
+ self.schema = "IFC4"
+ self.reference_pattern = re.compile(r"#(\d+)")
+ self.entity_cache = {}
+ self.inverses = {}
+
+ # common.INT doesn't support negative integers.
+ grammar = r"""
+ start: "#" NUMBER "=" TYPE "(" args ")" ";"
+
+ args: arg ("," arg)*
+
+ arg: STRING -> string
+ | FLOAT -> float
+ | IFCINT -> ifcint
+ | NULL -> null
+ | DERIVED -> derived
+ | ENUM -> enum
+ | REFERENCE -> reference
+ | list -> list
+ | inline_type -> inline_type
+
+ list: "(" arg? ("," arg)* ")"
+ inline_type: TYPE "(" arg ")"
+ REFERENCE: "#" /[0-9]+/
+
+ TYPE: CNAME
+ NUMBER: INT
+
+ STRING: "'" /([^']|'')*/ "'"
+ IFCINT: /-?[0-9]+/
+ FLOAT: /-?[0-9]+\.[0-9]*([Ee]-?[0-9]+)?/
+ NULL: "$"
+ DERIVED: "*"
+ ENUM: "." CNAME "."
+
+ %import common.INT
+ %import common.CNAME
+ """
+
+ transformer = StreamTransformer()
+ transformer.file = self
+ self.parser = Lark(grammar, parser="lalr", transformer=transformer)
+
+ exclude_classes = [
+ "IfcObjectPlacement",
+ "IfcPresentationItem",
+ "IfcPresentationStyle",
+ "IfcProductRepresentation",
+ "IfcRepresentation",
+ "IfcRepresentationItem",
+ ]
+ exclude_classes = []
+
+ exclude = set()
+
+ offset = 0
+ for line in self.file:
+ line = line.strip()
+ if line.startswith("#"):
+ step_id, ifc_class = line.split("(")[0].split("=")
+ step_id = int(step_id.strip()[1:])
+ ifc_class = ifc_class.strip()
+
+ if ifc_class in exclude:
+ offset += len(line) + 1 # +1 for the newline character
+ continue
+
+ for reference_id in self.reference_pattern.findall(line[1:]):
+ self.inverses.setdefault(int(reference_id), []).append(step_id)
+
+ self.id_map[step_id] = ifc_class
+ self.class_map.setdefault(ifc_class, []).append(step_id)
+ self.id_offset[step_id] = offset
+ elif line.startswith("FILE_SCHEMA"):
+ self.schema = line.split("'")[1]
+ self.ifc_schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(self.schema)
+ for ifc_class in exclude_classes:
+ declaration = self.ifc_schema.declaration_by_name(ifc_class)
+ exclude.update([st.name().upper() for st in ifcopenshell.util.schema.get_subtypes(declaration)])
+ offset += len(line) + 1 # +1 for the newline character
+
+ self.preprocess_schema()
+
+ def preprocess_schema(self):
+ self.ifc_class_names = {}
+ self.ifc_class_subtypes = {}
+ self.ifc_class_attributes = {}
+ self.ifc_class_inverse_attributes = {}
+ self.ifc_class_references = {}
+ self.ifc_class_inverses = {}
+
+ for declaration in self.ifc_schema.declarations():
+ if not str(declaration).startswith("", str(attribute)):
+ attribute_entity = self.ifc_schema.declaration_by_name(entity_name)
+ for subtype in ifcopenshell.util.schema.get_subtypes(attribute_entity):
+ # self.ifc_class_inverses.setdefault(subtype.name(), set()).add(declaration.name())
+ self.ifc_class_inverses.setdefault(subtype.name(), {})
+ self.ifc_class_inverses[subtype.name()].setdefault(declaration.name(), [])
+ self.ifc_class_inverses[subtype.name()][declaration.name()].append(attribute.name())
+
+ self.ifc_class_references[declaration.name()] = {"entity": entity, "entity_list": entity_list}
+
+ def clear_cache(self):
+ self.entity_cache = {}
+
+ def create_entity(self, type, *args, **kawrgs):
+ assert False
+
+ def by_id(self, id):
+ entity = self.entity_cache.get(id, None)
+ if entity:
+ return entity
+ ifc_class = self.id_map.get(id, None)
+ if ifc_class:
+ entity = stream_entity(id, self.ifc_class_names[ifc_class], self)
+ self.entity_cache[id] = entity
+ return entity
+
+ def by_type(self, type, include_subtypes=True):
+ results = []
+ subtypes = self.ifc_class_subtypes[type] if include_subtypes else self.ifc_class_subtypes[type][0:1]
+ for subtype in subtypes:
+ results.extend([self.by_id(i) for i in self.class_map.get(subtype.name().upper(), [])])
+ return results
+
+ def traverse(self, inst, max_levels=None, breadth_first=False):
+ results = [inst]
+ queue = [inst]
+ while queue:
+ if max_levels is not None:
+ max_levels -= 1
+
+ cur = queue.pop()
+ level_results = set()
+
+ for reference_id in self.reference_pattern.findall(str(cur)[1:]):
+ result = self.by_id(int(reference_id))
+ results.append(result)
+ if max_levels is None or max_levels:
+ queue.append(result)
+
+ return results
+
+ def get_inverse(self, inst, allow_duplicate=False, with_attribute_indices=False):
+ return {self.by_id(e) for e in self.inverses.get(inst.stream_wrapper.id, [])}
+
+ def is_entity_list(self, attribute):
+ attribute = str(attribute.type_of_attribute())
+ if (attribute.startswith("", attribute):
+ if data_type not in ("list", "set", "select", "entity"):
+ return False
+ return True
+ return False
+
+
+ class stream_entity(entity_instance):
+ def __init__(self, id, ifc_class, file=None):
+ if not ifc_class:
+ print(id, ifc_class, file)
+ assert False
+ e = ifcopenshell_wrapper.new_IfcBaseClass(file.schema, ifc_class)
+ s = stream_wrapper(id, ifc_class, file)
+ super(entity_instance, self).__setattr__("wrapped_data", e)
+ super(entity_instance, self).__setattr__("stream_wrapper", s)
+
+ def id(self):
+ return self.stream_wrapper.id
+
+ def __repr__(self):
+ offset = self.stream_wrapper.file.id_offset[self.stream_wrapper.id]
+ self.stream_wrapper.file.file.seek(offset)
+ return self.stream_wrapper.file.file.readline().strip()
+
+ def __del__(self):
+ pass
+
+ def __getitem__(self, key):
+ return self.__getattr__(list(self.stream_wrapper.attributes.keys())[key])
+
+ def __setattr__(self, key, value):
+ query = f"UPDATE `{self.stream_wrapper.ifc_class}` SET `{key}` = ? WHERE ifc_id = {self.stream_wrapper.id}"
+ self.stream_wrapper.file.cursor.execute(query, (value,))
+ self.stream_wrapper.file.db.commit()
+ self.stream_wrapper.attribute_cache = {}
+
+ def __getattr__(self, name):
+ INVALID, FORWARD, INVERSE = range(3)
+ attr_cat = self.wrapped_data.get_attribute_category(name)
+ if attr_cat == FORWARD:
+ if self.stream_wrapper.attribute_cache:
+ return self.stream_wrapper.attribute_cache[name]
+
+ offset = self.stream_wrapper.file.id_offset[self.stream_wrapper.id]
+ self.stream_wrapper.file.file.seek(offset)
+ line = self.stream_wrapper.file.file.readline()
+ attributes = self.stream_wrapper.file.parser.parse(line.strip())[2]
+
+ for i, attribute in enumerate(self.stream_wrapper.attributes.values()):
+ self.stream_wrapper.attribute_cache[attribute.name()] = attributes[i]
+ return self.stream_wrapper.attribute_cache[name]
+ elif attr_cat == INVERSE:
+ if self.stream_wrapper.inverse_attribute_cache:
+ results = self.stream_wrapper.inverse_attribute_cache.get(name, None)
+ if results is not None:
+ return results
+
+ results = []
+
+ element_ids = self.stream_wrapper.file.inverses.get(self.stream_wrapper.id, [])
+ if not element_ids:
+ self.stream_wrapper.inverse_attribute_cache[name] = tuple()
+ return self.stream_wrapper.inverse_attribute_cache[name]
+
+ attribute = self.stream_wrapper.inverse_attributes[name]
+ entity_class = attribute.entity_reference().name()
+ declaration = self.stream_wrapper.file.ifc_schema.declaration_by_name(entity_class)
+ forward_name = attribute.attribute_reference().name()
+
+ subtypes = [st.name() for st in ifcopenshell.util.schema.get_subtypes(declaration)]
+ for element_id in element_ids:
+ ifc_class = self.stream_wrapper.file.ifc_class_names[self.stream_wrapper.file.id_map[element_id]]
+ if ifc_class in subtypes:
+ potential_result = self.stream_wrapper.file.by_id(element_id)
+ forward_value = getattr(potential_result, forward_name, None)
+ if not forward_value:
+ pass
+ elif isinstance(forward_value, tuple):
+ if self.stream_wrapper.id in [e.id() for e in forward_value]:
+ results.append(potential_result)
+ elif forward_value.id() == self.stream_wrapper.id:
+ results.append(potential_result)
+
+ self.stream_wrapper.inverse_attribute_cache[name] = tuple(results)
+ return self.stream_wrapper.inverse_attribute_cache[name]
+
+ raise AttributeError(
+ "entity instance of type '%s' has no attribute '%s'" % (self.wrapped_data.is_a(True), name)
+ )
+
+ def __eq__(self, other):
+ if not isinstance(self, type(other)):
+ return False
+ elif None in (self.stream_wrapper.file, other.stream_wrapper.file):
+ assert False # not implemented
+ if self.stream_wrapper.id:
+ return self.stream_wrapper.id == other.stream_wrapper.id
+ assert False # not implemented
+
+ def __hash__(self):
+ if self.stream_wrapper.id:
+ return hash((self.stream_wrapper.id, self.stream_wrapper.file.filepath))
+
+ def get_info(self, include_identifier=True, recursive=False, return_type=dict, ignore=(), scalar_only=False):
+ info = {"id": self.stream_wrapper.id, "type": self.stream_wrapper.ifc_class}
+ if not self.stream_wrapper.attribute_cache:
+ self.__getitem__(0) # This will get all attributes
+ info.update(self.stream_wrapper.attribute_cache)
+ return info
+
+
+ class stream_wrapper:
+ def __init__(self, id, ifc_class, file):
+ self.id = id
+ self.ifc_class = ifc_class
+ self.file = file
+ self.attributes = self.file.ifc_class_attributes[self.ifc_class]
+ self.inverse_attributes = self.file.ifc_class_inverse_attributes[self.ifc_class]
+ self.attribute_cache = {}
+ self.inverse_attribute_cache = {}
+
+ def __repr__(self):
+ return "todo"
+
+except ImportError as e:
+ print(f"No stream support: {e}")
diff --git a/src/ifcopenshell-python/ifcopenshell/util/element.py b/src/ifcopenshell-python/ifcopenshell/util/element.py
index bbe170bc6c..23b5b9172e 100644
--- a/src/ifcopenshell-python/ifcopenshell/util/element.py
+++ b/src/ifcopenshell-python/ifcopenshell/util/element.py
@@ -121,7 +121,7 @@ def get_psets(element, psets_only=False, qtos_only=False, should_inherit=True):
continue
psets[definition.Name] = get_property_definition(definition)
elif element.is_a("IfcMaterialDefinition") or element.is_a("IfcProfileDef"):
- for definition in element.HasProperties or []:
+ for definition in getattr(element, "HasProperties", None) or []:
if qtos_only:
continue
psets[definition.Name] = get_property_definition(definition)
@@ -609,14 +609,16 @@ def get_referenced_structures(element):
return []
-def get_decomposition(element):
+def get_decomposition(element, is_recursive=True):
"""
Retrieves all subelements of an element based on the spatial decomposition
hierarchy. This includes all subspaces and elements contained in subspaces,
parts of an aggreate, all openings, and all fills of any openings.
:param element: The IFC element
+ :type element: ifcopenshell.entity_instance.entity_instance
:return: The decomposition of the element
+ :rtype: list[ifcopenshell.entity_instance.entity_instance]
Example:
@@ -644,6 +646,8 @@ def get_decomposition(element):
for rel in getattr(element, "IsNestedBy", []):
queue.extend(rel.RelatedObjects)
results.extend(rel.RelatedObjects)
+ if not is_recursive:
+ break
return results
@@ -682,7 +686,6 @@ def get_aggregate(element):
.. code:: python
element = file.by_type("IfcBeam")[0]
aggregate = ifcopenshell.util.element.get_aggregate(element)
-
"""
if hasattr(element, "Decomposes") and element.Decomposes:
return element.Decomposes[0].RelatingObject
@@ -736,6 +739,72 @@ def remove_deep(ifc_file, element):
ifc_file.unbatch()
+def batch_remove_deep2(ifc_file):
+ """Enable batch removal after running remove_deep2 using serialisation
+
+ See #944 and #3226. Removing elements in an IFC graph is slow as a lot of
+ mappings need to be edited. In larger models (>100MB) and when removing
+ many elements (>10000), it is faster to serialise the IFC, remove elements
+ using string replacement, and then reload the modified serialised IFC.
+
+ The trade-off is that extra memory will be used, and string replacement
+ only works with remove_deep2 where the removed elements have no inverses.
+ In addition, transaction history will be lost, and any scripts using this
+ method will have to refetch elements from the reloaded IFC and cannot rely
+ on existing variables in memory.
+
+ :param ifc_file: The IFC file object
+ :type ifc_file: ifcopenshell.file.file
+ :rtype: None
+
+ Example:
+
+ .. code:: python
+
+ element1 = model.by_id(123)
+ element2 = model.by_id(456)
+
+ ifcopenshell.util.element.batch_remove_deep2(model)
+ ifcopenshell.util.element.remove_deep2(model, element2)
+
+ # Notice how we reload the model.
+ model = ifcopenshell.util.element.unbatch_remove_deep2(model)
+
+ print(element1) # Don't call element1!
+ """
+ ifc_file.to_delete = set()
+
+
+def unbatch_remove_deep2(ifc_file):
+ """Finish removing elements batched from remove_deep2 using string replacement
+
+ See documentation for batch_remove_deep2.
+
+ :param ifc_file: The IFC file object
+ :type ifc_file: ifcopenshell.file.file
+ :return: A newly loaded file with the elements removed.
+ :rtype: ifcopenshell.file.file
+ """
+ ifc_string = ifc_file.to_string()
+ lines = iter(ifc_string.split('\n'))
+ ids_to_delete = iter(sorted([e.id() for e in ifc_file.to_delete]))
+ id_to_delete = next(ids_to_delete, None)
+ result = []
+
+ for line in lines:
+ if id_to_delete is None:
+ result.append(line)
+ continue
+
+ if line.startswith(f"#{id_to_delete}="):
+ id_to_delete = next(ids_to_delete, None)
+ else:
+ result.append(line)
+
+ ifc_file.to_delete = None
+ return ifcopenshell.file.from_string("\n".join(result))
+
+
def remove_deep2(ifc_file, element, also_consider=[], do_not_delete=[]):
"""Recursively purges a subgraph safely, starting at an element
@@ -793,6 +862,11 @@ def remove_deep2(ifc_file, element, also_consider=[], do_not_delete=[]):
for i, attribute in enumerate(subelement):
if isinstance(attribute, tuple) and len(attribute) > 10:
subelement[i] = []
+
+ if getattr(ifc_file, "to_delete", None) is not None:
+ ifc_file.to_delete.update(to_delete)
+ return
+
# We delete elements from subgraph in reverse order to allow batching to work
for subelement in filter(lambda e: e in to_delete, subgraph[::-1]):
ifc_file.remove(subelement)
diff --git a/src/ifcopenshell-python/ifcopenshell/util/file.py b/src/ifcopenshell-python/ifcopenshell/util/file.py
index eb682d19b4..2898f5448c 100644
--- a/src/ifcopenshell-python/ifcopenshell/util/file.py
+++ b/src/ifcopenshell-python/ifcopenshell/util/file.py
@@ -23,5 +23,7 @@ def guess_format(path: Path) -> "str | None":
"""Try to guess format using file extension"""
if path.suffix.lower() in (".ifczip", ".zip"):
return ".ifcZIP"
- if path.suffix.lower() in (".ifcxml", ".xml"):
+ elif path.suffix.lower() in (".ifcxml", ".xml"):
return ".ifcXML"
+ elif path.suffix.lower() in (".ifcsqlite", ".sqlite", ".db"):
+ return ".ifcSQLite"
diff --git a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py
index 87d91e9274..daf8f06018 100644
--- a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py
+++ b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py
@@ -38,8 +38,11 @@ class ShapeBuilder:
def polyline(self, points, closed=False, position_offset=None, arc_points=[]):
# > points - list of points formatted like ( (x0, y0), (x1, y1) )
# < IfcIndexedPolyCurve
- segments = []
+ if arc_points and self.file.schema == "IFC2X3":
+ raise Exception("Arcs are not supported for IFC2X3.")
+
+ segments = []
cur_i = 0
while cur_i < len(points) - 1:
cur_i_ifc = cur_i + 1
@@ -55,19 +58,34 @@ class ShapeBuilder:
if position_offset:
points = [Vector(p) + position_offset for p in points]
- dimensions = len(points[0])
- if dimensions == 2:
- ifc_points = self.file.createIfcCartesianPointList2D(points)
- elif dimensions == 3:
- ifc_points = self.file.createIfcCartesianPointList3D(points)
+ if self.file.schema == "IFC2X3":
+ points = [self.file.createIfcCartesianPoint(p) for p in points]
+ ifc_curve = self.file.createIfcPolyline(Points=points)
+ else:
+ dimensions = len(points[0])
+ if dimensions == 2:
+ ifc_points = self.file.createIfcCartesianPointList2D(points)
+ elif dimensions == 3:
+ ifc_points = self.file.createIfcCartesianPointList3D(points)
- ifc_segments = []
- for segment in segments:
- if len(segment) == 2:
- ifc_segments.append(self.file.createIfcLineIndex(segment))
- elif len(segment) == 3:
- ifc_segments.append(self.file.createIfcArcIndex(segment))
- ifc_curve = self.file.createIfcIndexedPolyCurve(Points=ifc_points, Segments=ifc_segments)
+ ifc_segments = []
+ # because IfcLineIndex support 2+ points
+ # we merge neighbor line segments into one
+ current_line_segment = []
+ last_segment = len(segments) - 1
+ for seg_i, segment in enumerate(segments):
+ if len(segment) == 2:
+ current_line_segment += segment
+
+ if current_line_segment and (len(segment) == 3 or seg_i == last_segment):
+ ifc_segments.append(self.file.createIfcLineIndex(current_line_segment))
+ current_line_segment = []
+
+ if len(segment) == 3:
+ ifc_segments.append(self.file.createIfcArcIndex(segment))
+
+ # NOTE: IfcIndexPolyCurve support only consequtive segments
+ ifc_curve = self.file.createIfcIndexedPolyCurve(Points=ifc_points, Segments=ifc_segments)
return ifc_curve
def get_rectangle_coords(self, size: Vector = Vector((1.0, 1.0)).freeze(), position: Vector = None):
@@ -240,9 +258,10 @@ class ShapeBuilder:
if create_copy:
c = ifcopenshell.util.element.copy_deep(self.file, c)
- if c.is_a("IfcIndexedPolyCurve"):
- coords = [Vector(co) + translation for co in c.Points.CoordList]
- c.Points.CoordList = coords
+ if c.is_a() in ("IfcIndexedPolyCurve", "IfcPolyline"):
+ coords = self.get_polyline_coords(c)
+ coords = [Vector(co) + translation for co in coords]
+ self.set_polyline_coords(c, coords)
elif c.is_a("IfcCircle") or c.is_a("IfcExtrudedAreaSolid") or c.is_a("IfcEllipse"):
base_position = Vector(c.Position.Location.Coordinates)
@@ -301,11 +320,12 @@ class ShapeBuilder:
if create_copy:
c = ifcopenshell.util.element.copy_deep(self.file, c)
- if c.is_a("IfcIndexedPolyCurve"):
+ if c.is_a() in ("IfcIndexedPolyCurve", "IfcPolyline"):
+ original_coords = self.get_polyline_coords(c)
coords = [
- self.rotate_2d_point(Vector(co), angle, pivot_point, counter_clockwise) for co in c.Points.CoordList
+ self.rotate_2d_point(Vector(co), angle, pivot_point, counter_clockwise) for co in original_coords
]
- c.Points.CoordList = coords
+ self.set_polyline_coords(c, coords)
elif c.is_a("IfcCircle"):
base_position = Vector(c.Position.Location.Coordinates)
@@ -397,10 +417,11 @@ class ShapeBuilder:
else curve_or_item_el
)
- if c.is_a("IfcIndexedPolyCurve"):
+ if c.is_a() in ("IfcIndexedPolyCurve", "IfcPolyline"):
+ original_coords = self.get_polyline_coords(c)
inverted_placement_matrix = placement_matrix.inverted() if placement_matrix else None
coords = []
- for co in c.Points.CoordList:
+ for co in original_coords:
co_base = Vector(co)
if placement_matrix:
# TODO: add support for Z-axis too
@@ -413,7 +434,7 @@ class ShapeBuilder:
coords.append(co)
- c.Points.CoordList = coords
+ self.set_polyline_coords(c, coords)
elif c.is_a("IfcCircle") or c.is_a("IfcEllipse"):
base_position = Vector(c.Position.Location.Coordinates)
@@ -583,3 +604,20 @@ class ShapeBuilder:
kwargs["position_x_axis"].rotate(rot)
kwargs["position_z_axis"].rotate(rot)
return kwargs
+
+ def get_polyline_coords(self, polyline):
+ """polyline should be either `IfcIndexedPolyCurve` or `IfcPolyline`"""
+ coords = None
+ if polyline.is_a("IfcIndexedPolyCurve"):
+ coords = polyline.Points.CoordList
+ elif polyline.is_a("IfcPolyline"):
+ coords = [p.Coordinates for p in polyline.Points]
+ return coords
+
+ def set_polyline_coords(self, polyline, coords):
+ """polyline should be either `IfcIndexedPolyCurve` or `IfcPolyline`"""
+ if polyline.is_a("IfcIndexedPolyCurve"):
+ polyline.Points.CoordList = coords
+ elif polyline.is_a("IfcPolyline"):
+ for i, co in enumerate(coords):
+ polyline.Points[i].Coordinates = co
diff --git a/src/ifcopenshell-python/ifcopenshell/util/unit.py b/src/ifcopenshell-python/ifcopenshell/util/unit.py
index 25aa251776..e6f436fb8e 100644
--- a/src/ifcopenshell-python/ifcopenshell/util/unit.py
+++ b/src/ifcopenshell-python/ifcopenshell/util/unit.py
@@ -280,11 +280,20 @@ prefix_symbols = {
}
unit_symbols = {
+ # si units
"CUBIC_METRE": "m3",
"GRAM": "g",
"SECOND": "s",
"SQUARE_METRE": "m2",
"METRE": "m",
+ # non si units
+ "cubic inch": "in3",
+ "cubic foot": "ft3",
+ "cubic yard": "yd3",
+ "square inch": "in2",
+ "square foot": "ft2",
+ "square yard": "yd2",
+ "square mile": "mi2",
}
@@ -442,12 +451,11 @@ def get_symbol_quantity_class(symbol):
def get_unit_symbol(unit):
+ symbol = ""
if unit.is_a("IfcSIUnit"):
- symbol = ""
symbol += prefix_symbols.get(unit.Prefix, "")
- symbol += unit_symbols.get(unit.Name.replace("METER", "METRE"), "?")
- return symbol
- return "?"
+ symbol += unit_symbols.get(unit.Name.replace("METER", "METRE"), "?")
+ return symbol
def convert_unit(value, from_unit, to_unit):
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 52d7404693..54e1d61633 100644
--- a/src/ifcopenshell-python/test/api/pset/test_edit_pset.py
+++ b/src/ifcopenshell-python/test/api/pset/test_edit_pset.py
@@ -16,6 +16,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with IfcOpenShell. If not, see .
+import operator
import test.bootstrap
import ifcopenshell.api
@@ -166,6 +167,22 @@ class TestEditPset(test.bootstrap.IFC4):
assert pset.HasProperties[0].NominalValue.is_a("IfcContextDependentMeasure")
assert pset.HasProperties[0].NominalValue.wrappedValue == 34
+ def test_editing_list_valued_properties(self):
+ cable = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcDistributionPort", predefined_type="CABLE")
+ pset = ifcopenshell.api.run("pset.add_pset", self.file, product=cable, name="Pset_DistributionPortTypeCable")
+ ifcopenshell.api.run(
+ "pset.edit_pset",
+ self.file,
+ pset=pset,
+ properties={
+ "Protocols": ["One", "Two", "Three"],
+ },
+ )
+ assert pset.HasProperties[0].is_a('IfcPropertyListValue')
+ assert len(pset.HasProperties[0].ListValues) == 3
+ assert set(map(ifcopenshell.entity_instance.is_a, pset.HasProperties[0].ListValues)) == {'IfcIdentifier'}
+ assert list(map(operator.itemgetter(0), pset.HasProperties[0].ListValues)) == ['One', 'Two', 'Three']
+
def test_editing_properties_with_an_explicit_type(self):
element = ifcopenshell.api.run("root.create_entity", self.file, ifc_class="IfcWall")
pset = ifcopenshell.api.run("pset.add_pset", self.file, product=element, name="Foo_Bar")
diff --git a/src/ifcopenshell-python/test/test_create_shape.py b/src/ifcopenshell-python/test/test_create_shape.py
new file mode 100644
index 0000000000..e319dfa3f2
--- /dev/null
+++ b/src/ifcopenshell-python/test/test_create_shape.py
@@ -0,0 +1,85 @@
+import ifcopenshell
+import ifcopenshell.api
+import ifcopenshell.geom
+import ifcopenshell.api.owner.settings
+
+class TestAssignObject:
+ def test_no_welding_on_distinct_items(self):
+ self.file = ifcopenshell.api.run("project.create_file")
+ ifcopenshell.api.owner.settings.get_user = lambda ifc: (ifc.by_type("IfcPersonAndOrganization") or [None])[0]
+ ifcopenshell.api.owner.settings.get_application = lambda ifc: (ifc.by_type("IfcApplication") or [None])[0]
+
+ ifcopenshell.api.run(
+ "root.create_entity", self.file, ifc_class="IfcProject", name="Test"
+ )
+ unit = ifcopenshell.api.run(
+ "unit.add_si_unit", self.file, unit_type="LENGTHUNIT"
+ )
+ ifcopenshell.api.run("unit.assign_unit", self.file, units=[unit])
+ context = ifcopenshell.api.run(
+ "context.add_context", self.file, context_type="Model"
+ )
+ element = ifcopenshell.api.run(
+ "root.create_entity", self.file, ifc_class="IfcWall"
+ )
+
+ def create_extrusion(x, y):
+ points = (
+ (x + 0.0, y + 0.0),
+ (x + 0.0, y + 1.0),
+ (x + 1.0, y + 1.0),
+ (x + 1.0, y + 0.0),
+ (x + 0.0, y + 0.0),
+ )
+ curve = self.file.createIfcPolyline(
+ [self.file.createIfcCartesianPoint(p) for p in points]
+ )
+ extrusion_direction = self.file.createIfcDirection((0.0, 0.0, 1.0))
+ return self.file.createIfcExtrudedAreaSolid(
+ self.file.createIfcArbitraryClosedProfileDef("AREA", None, curve),
+ self.file.createIfcAxis2Placement3D(
+ self.file.createIfcCartesianPoint((0.0, 0.0, 0.0)),
+ ),
+ extrusion_direction,
+ 1.0,
+ )
+
+ extrusions = [create_extrusion(x, 0.0) for x in [0.0, 1.0]]
+ element.Representation = self.file.createIfcProductDefinitionShape(
+ Representations=[
+ self.file.createIfcShapeRepresentation(
+ context,
+ context.ContextIdentifier,
+ "SweptSolid",
+ extrusions,
+ )
+ ]
+ )
+
+ obj = ifcopenshell.geom.create_shape(
+ ifcopenshell.geom.settings(WELD_VERTICES=True), element
+ )
+
+ # item_ids is a per-triangle array, so we have 12 triangles per cube
+ # even though not documented, the order in representation items should match
+ assert (
+ obj.geometry.item_ids
+ == (extrusions[0].id(),) * 12 + (extrusions[1].id(),) * 12
+ )
+
+ # group the vertices
+ vs = [
+ obj.geometry.verts[i : i + 3] for i in range(0, len(obj.geometry.verts), 3)
+ ]
+
+ # welding should not happen between distinct items so the total number of verts should be 2 times 8
+ assert len(vs) == 16
+
+ # even though there are only 12 unique vertices as the cubes are touching
+ assert len(set(vs)) == 12
+
+
+if __name__ == "__main__":
+ import pytest
+
+ pytest.main(["-vvsx", __file__])
diff --git a/src/ifcopenshell-python/test/util/test_element.py b/src/ifcopenshell-python/test/util/test_element.py
index 798c06349f..e6badd4a1b 100644
--- a/src/ifcopenshell-python/test/util/test_element.py
+++ b/src/ifcopenshell-python/test/util/test_element.py
@@ -660,6 +660,18 @@ class TestRemoveDeep2IFC4(test.bootstrap.IFC4):
assert self.file.by_guid("id1")
+class TestBatchRemoveDeep2IFC4(test.bootstrap.IFC4):
+ def test_run(self):
+ owner = self.file.createIfcOwnerHistory()
+ element = self.file.createIfcWall(GlobalId="id", OwnerHistory=owner)
+ subject.batch_remove_deep2(self.file)
+ subject.remove_deep2(self.file, element)
+ new = subject.unbatch_remove_deep2(self.file)
+ assert self.file.by_id(1)
+ with pytest.raises(RuntimeError):
+ new.by_id(1)
+
+
class TestCopyIFC4(test.bootstrap.IFC4):
def test_copying_an_element(self):
element = self.file.createIfcWall(GlobalId="id", Name="name")
diff --git a/src/ifcparse/Ifc2x3-definitions.h b/src/ifcparse/Ifc2x3-definitions.h
index f732ebb5a5..71309edb67 100644
--- a/src/ifcparse/Ifc2x3-definitions.h
+++ b/src/ifcparse/Ifc2x3-definitions.h
@@ -3038,3 +3038,43 @@
#define SCHEMA_IfcZShapeProfileDef_HAS_EdgeRadius
#define SCHEMA_IfcZShapeProfileDef_EdgeRadius_IS_OPTIONAL
#define SCHEMA_HAS_IfcZone
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAddToBeginOfList
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectObjectAssignment
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSiUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcLeapYear
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcValidCalendarDate
+#define SCHEMA_HAS_IfcValidTime
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc2x3.cpp b/src/ifcparse/Ifc2x3.cpp
index 249c055202..74762b88ec 100644
--- a/src/ifcparse/Ifc2x3.cpp
+++ b/src/ifcparse/Ifc2x3.cpp
@@ -9097,7 +9097,7 @@ Ifc2x3::IfcAlarmType::IfcAlarmType(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHi
const IfcParse::entity& Ifc2x3::IfcAngularDimension::declaration() const { return *IFC2X3_IfcAngularDimension_type; }
const IfcParse::entity& Ifc2x3::IfcAngularDimension::Class() { return *IFC2X3_IfcAngularDimension_type; }
Ifc2x3::IfcAngularDimension::IfcAngularDimension(IfcEntityInstanceData* e) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcAngularDimension_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcAngularDimension::IfcAngularDimension(aggregate_of_instance::ptr v1_Contents) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcAngularDimension_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents));data_->setArgument(0,attr);} }
+Ifc2x3::IfcAngularDimension::IfcAngularDimension(aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcAngularDimension_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcAnnotation
@@ -10265,14 +10265,14 @@ Ifc2x3::IfcConstraintAggregationRelationship::IfcConstraintAggregationRelationsh
// Function implementations for IfcConstraintClassificationRelationship
::Ifc2x3::IfcConstraint* Ifc2x3::IfcConstraintClassificationRelationship::ClassifiedConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc2x3::IfcConstraint>(true); }
void Ifc2x3::IfcConstraintClassificationRelationship::setClassifiedConstraint(::Ifc2x3::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcConstraintClassificationRelationship::RelatedClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc2x3::IfcConstraintClassificationRelationship::setRelatedClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr Ifc2x3::IfcConstraintClassificationRelationship::RelatedClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc2x3::IfcClassificationNotationSelect >(); }
+void Ifc2x3::IfcConstraintClassificationRelationship::setRelatedClassifications(aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc2x3::IfcConstraintClassificationRelationship::declaration() const { return *IFC2X3_IfcConstraintClassificationRelationship_type; }
const IfcParse::entity& Ifc2x3::IfcConstraintClassificationRelationship::Class() { return *IFC2X3_IfcConstraintClassificationRelationship_type; }
Ifc2x3::IfcConstraintClassificationRelationship::IfcConstraintClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcConstraintClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcConstraintClassificationRelationship::IfcConstraintClassificationRelationship(::Ifc2x3::IfcConstraint* v1_ClassifiedConstraint, aggregate_of_instance::ptr v2_RelatedClassifications) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcConstraintClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ClassifiedConstraint));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_RelatedClassifications));data_->setArgument(1,attr);} }
+Ifc2x3::IfcConstraintClassificationRelationship::IfcConstraintClassificationRelationship(::Ifc2x3::IfcConstraint* v1_ClassifiedConstraint, aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr v2_RelatedClassifications) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcConstraintClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ClassifiedConstraint));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_RelatedClassifications)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcConstraintRelationship
boost::optional< std::string > Ifc2x3::IfcConstraintRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -10299,8 +10299,8 @@ Ifc2x3::IfcConstructionEquipmentResource::IfcConstructionEquipmentResource(IfcEn
Ifc2x3::IfcConstructionEquipmentResource::IfcConstructionEquipmentResource(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_ResourceIdentifier, boost::optional< std::string > v7_ResourceGroup, boost::optional< ::Ifc2x3::IfcResourceConsumptionEnum::Value > v8_ResourceConsumption, ::Ifc2x3::IfcMeasureWithUnit* v9_BaseQuantity) : IfcConstructionResource((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcConstructionEquipmentResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_ResourceIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_ResourceIdentifier));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_ResourceGroup) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_ResourceGroup));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_ResourceConsumption) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_ResourceConsumption,::Ifc2x3::IfcResourceConsumptionEnum::ToString(*v8_ResourceConsumption))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_BaseQuantity));data_->setArgument(8,attr);} }
// Function implementations for IfcConstructionMaterialResource
-boost::optional< aggregate_of_instance::ptr > Ifc2x3::IfcConstructionMaterialResource::Suppliers() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc2x3::IfcConstructionMaterialResource::setSuppliers(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > Ifc2x3::IfcConstructionMaterialResource::Suppliers() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc2x3::IfcActorSelect >(); }
+void Ifc2x3::IfcConstructionMaterialResource::setSuppliers(boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< double > Ifc2x3::IfcConstructionMaterialResource::UsageRatio() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } double v = *data_->getArgument(10); return v; }
void Ifc2x3::IfcConstructionMaterialResource::setUsageRatio(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
@@ -10308,7 +10308,7 @@ void Ifc2x3::IfcConstructionMaterialResource::setUsageRatio(boost::optional< dou
const IfcParse::entity& Ifc2x3::IfcConstructionMaterialResource::declaration() const { return *IFC2X3_IfcConstructionMaterialResource_type; }
const IfcParse::entity& Ifc2x3::IfcConstructionMaterialResource::Class() { return *IFC2X3_IfcConstructionMaterialResource_type; }
Ifc2x3::IfcConstructionMaterialResource::IfcConstructionMaterialResource(IfcEntityInstanceData* e) : IfcConstructionResource((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcConstructionMaterialResource_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcConstructionMaterialResource::IfcConstructionMaterialResource(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_ResourceIdentifier, boost::optional< std::string > v7_ResourceGroup, boost::optional< ::Ifc2x3::IfcResourceConsumptionEnum::Value > v8_ResourceConsumption, ::Ifc2x3::IfcMeasureWithUnit* v9_BaseQuantity, boost::optional< aggregate_of_instance::ptr > v10_Suppliers, boost::optional< double > v11_UsageRatio) : IfcConstructionResource((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcConstructionMaterialResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_ResourceIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_ResourceIdentifier));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_ResourceGroup) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_ResourceGroup));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_ResourceConsumption) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_ResourceConsumption,::Ifc2x3::IfcResourceConsumptionEnum::ToString(*v8_ResourceConsumption))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_BaseQuantity));data_->setArgument(8,attr);} if (v10_Suppliers) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Suppliers));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_UsageRatio) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_UsageRatio));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } }
+Ifc2x3::IfcConstructionMaterialResource::IfcConstructionMaterialResource(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_ResourceIdentifier, boost::optional< std::string > v7_ResourceGroup, boost::optional< ::Ifc2x3::IfcResourceConsumptionEnum::Value > v8_ResourceConsumption, ::Ifc2x3::IfcMeasureWithUnit* v9_BaseQuantity, boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v10_Suppliers, boost::optional< double > v11_UsageRatio) : IfcConstructionResource((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcConstructionMaterialResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_ResourceIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_ResourceIdentifier));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_ResourceGroup) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_ResourceGroup));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_ResourceConsumption) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_ResourceConsumption,::Ifc2x3::IfcResourceConsumptionEnum::ToString(*v8_ResourceConsumption))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_BaseQuantity));data_->setArgument(8,attr);} if (v10_Suppliers) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Suppliers)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_UsageRatio) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_UsageRatio));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } }
// Function implementations for IfcConstructionProductResource
@@ -10426,8 +10426,8 @@ void Ifc2x3::IfcCostSchedule::setPreparedBy(::Ifc2x3::IfcActorSelect* v) { {IfcW
void Ifc2x3::IfcCostSchedule::setSubmittedOn(::Ifc2x3::IfcDateTimeSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(7,attr);} }
boost::optional< std::string > Ifc2x3::IfcCostSchedule::Status() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
void Ifc2x3::IfcCostSchedule::setStatus(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc2x3::IfcCostSchedule::TargetUsers() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc2x3::IfcCostSchedule::setTargetUsers(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > Ifc2x3::IfcCostSchedule::TargetUsers() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc2x3::IfcActorSelect >(); }
+void Ifc2x3::IfcCostSchedule::setTargetUsers(boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
::Ifc2x3::IfcDateTimeSelect* Ifc2x3::IfcCostSchedule::UpdateDate() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(10)))->as<::Ifc2x3::IfcDateTimeSelect>(true); }
void Ifc2x3::IfcCostSchedule::setUpdateDate(::Ifc2x3::IfcDateTimeSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(10,attr);} }
std::string Ifc2x3::IfcCostSchedule::ID() const { std::string v = *data_->getArgument(11); return v; }
@@ -10439,7 +10439,7 @@ void Ifc2x3::IfcCostSchedule::setPredefinedType(::Ifc2x3::IfcCostScheduleTypeEnu
const IfcParse::entity& Ifc2x3::IfcCostSchedule::declaration() const { return *IFC2X3_IfcCostSchedule_type; }
const IfcParse::entity& Ifc2x3::IfcCostSchedule::Class() { return *IFC2X3_IfcCostSchedule_type; }
Ifc2x3::IfcCostSchedule::IfcCostSchedule(IfcEntityInstanceData* e) : IfcControl((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcCostSchedule_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcCostSchedule::IfcCostSchedule(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc2x3::IfcActorSelect* v6_SubmittedBy, ::Ifc2x3::IfcActorSelect* v7_PreparedBy, ::Ifc2x3::IfcDateTimeSelect* v8_SubmittedOn, boost::optional< std::string > v9_Status, boost::optional< aggregate_of_instance::ptr > v10_TargetUsers, ::Ifc2x3::IfcDateTimeSelect* v11_UpdateDate, std::string v12_ID, ::Ifc2x3::IfcCostScheduleTypeEnum::Value v13_PredefinedType) : IfcControl((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcCostSchedule_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_SubmittedBy));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_PreparedBy));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_SubmittedOn));data_->setArgument(7,attr);} if (v9_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_Status));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_TargetUsers) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_TargetUsers));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v11_UpdateDate));data_->setArgument(10,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v12_ID));data_->setArgument(11,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v13_PredefinedType,::Ifc2x3::IfcCostScheduleTypeEnum::ToString(v13_PredefinedType))));data_->setArgument(12,attr);} }
+Ifc2x3::IfcCostSchedule::IfcCostSchedule(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc2x3::IfcActorSelect* v6_SubmittedBy, ::Ifc2x3::IfcActorSelect* v7_PreparedBy, ::Ifc2x3::IfcDateTimeSelect* v8_SubmittedOn, boost::optional< std::string > v9_Status, boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v10_TargetUsers, ::Ifc2x3::IfcDateTimeSelect* v11_UpdateDate, std::string v12_ID, ::Ifc2x3::IfcCostScheduleTypeEnum::Value v13_PredefinedType) : IfcControl((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcCostSchedule_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_SubmittedBy));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_PreparedBy));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_SubmittedOn));data_->setArgument(7,attr);} if (v9_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_Status));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_TargetUsers) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_TargetUsers)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v11_UpdateDate));data_->setArgument(10,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v12_ID));data_->setArgument(11,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v13_PredefinedType,::Ifc2x3::IfcCostScheduleTypeEnum::ToString(v13_PredefinedType))));data_->setArgument(12,attr);} }
// Function implementations for IfcCostValue
std::string Ifc2x3::IfcCostValue::CostType() const { std::string v = *data_->getArgument(6); return v; }
@@ -10751,7 +10751,7 @@ Ifc2x3::IfcDerivedUnitElement::IfcDerivedUnitElement(::Ifc2x3::IfcNamedUnit* v1_
const IfcParse::entity& Ifc2x3::IfcDiameterDimension::declaration() const { return *IFC2X3_IfcDiameterDimension_type; }
const IfcParse::entity& Ifc2x3::IfcDiameterDimension::Class() { return *IFC2X3_IfcDiameterDimension_type; }
Ifc2x3::IfcDiameterDimension::IfcDiameterDimension(IfcEntityInstanceData* e) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcDiameterDimension_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcDiameterDimension::IfcDiameterDimension(aggregate_of_instance::ptr v1_Contents) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcDiameterDimension_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents));data_->setArgument(0,attr);} }
+Ifc2x3::IfcDiameterDimension::IfcDiameterDimension(aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcDiameterDimension_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcDimensionCalloutRelationship
@@ -10776,7 +10776,7 @@ Ifc2x3::IfcDimensionCurve::IfcDimensionCurve(::Ifc2x3::IfcRepresentationItem* v1
const IfcParse::entity& Ifc2x3::IfcDimensionCurveDirectedCallout::declaration() const { return *IFC2X3_IfcDimensionCurveDirectedCallout_type; }
const IfcParse::entity& Ifc2x3::IfcDimensionCurveDirectedCallout::Class() { return *IFC2X3_IfcDimensionCurveDirectedCallout_type; }
Ifc2x3::IfcDimensionCurveDirectedCallout::IfcDimensionCurveDirectedCallout(IfcEntityInstanceData* e) : IfcDraughtingCallout((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcDimensionCurveDirectedCallout_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcDimensionCurveDirectedCallout::IfcDimensionCurveDirectedCallout(aggregate_of_instance::ptr v1_Contents) : IfcDraughtingCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcDimensionCurveDirectedCallout_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents));data_->setArgument(0,attr);} }
+Ifc2x3::IfcDimensionCurveDirectedCallout::IfcDimensionCurveDirectedCallout(aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents) : IfcDraughtingCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcDimensionCurveDirectedCallout_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcDimensionCurveTerminator
::Ifc2x3::IfcDimensionExtentUsage::Value Ifc2x3::IfcDimensionCurveTerminator::Role() const { return ::Ifc2x3::IfcDimensionExtentUsage::FromString(*data_->getArgument(4)); }
@@ -10957,8 +10957,8 @@ boost::optional< std::string > Ifc2x3::IfcDocumentInformation::Revision() const
void Ifc2x3::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc2x3::IfcActorSelect* Ifc2x3::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc2x3::IfcActorSelect>(true); }
void Ifc2x3::IfcDocumentInformation::setDocumentOwner(::Ifc2x3::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc2x3::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc2x3::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > Ifc2x3::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc2x3::IfcActorSelect >(); }
+void Ifc2x3::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
::Ifc2x3::IfcDateAndTime* Ifc2x3::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(10)))->as<::Ifc2x3::IfcDateAndTime>(true); }
void Ifc2x3::IfcDocumentInformation::setCreationTime(::Ifc2x3::IfcDateAndTime* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(10,attr);} }
::Ifc2x3::IfcDateAndTime* Ifc2x3::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(11)))->as<::Ifc2x3::IfcDateAndTime>(true); }
@@ -10980,7 +10980,7 @@ void Ifc2x3::IfcDocumentInformation::setStatus(boost::optional< ::Ifc2x3::IfcDoc
const IfcParse::entity& Ifc2x3::IfcDocumentInformation::declaration() const { return *IFC2X3_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc2x3::IfcDocumentInformation::Class() { return *IFC2X3_IfcDocumentInformation_type; }
Ifc2x3::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcDocumentInformation::IfcDocumentInformation(std::string v1_DocumentId, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< aggregate_of< ::Ifc2x3::IfcDocumentReference >::ptr > v4_DocumentReferences, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc2x3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, ::Ifc2x3::IfcDateAndTime* v11_CreationTime, ::Ifc2x3::IfcDateAndTime* v12_LastRevisionTime, ::Ifc2x3::IfcDocumentElectronicFormat* v13_ElectronicFormat, ::Ifc2x3::IfcCalendarDate* v14_ValidFrom, ::Ifc2x3::IfcCalendarDate* v15_ValidUntil, boost::optional< ::Ifc2x3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc2x3::IfcDocumentStatusEnum::Value > v17_Status) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_DocumentId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DocumentReferences) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DocumentReferences)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v11_CreationTime));data_->setArgument(10,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v12_LastRevisionTime));data_->setArgument(11,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v13_ElectronicFormat));data_->setArgument(12,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v14_ValidFrom));data_->setArgument(13,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v15_ValidUntil));data_->setArgument(14,attr);} if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc2x3::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc2x3::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc2x3::IfcDocumentInformation::IfcDocumentInformation(std::string v1_DocumentId, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< aggregate_of< ::Ifc2x3::IfcDocumentReference >::ptr > v4_DocumentReferences, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc2x3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v10_Editors, ::Ifc2x3::IfcDateAndTime* v11_CreationTime, ::Ifc2x3::IfcDateAndTime* v12_LastRevisionTime, ::Ifc2x3::IfcDocumentElectronicFormat* v13_ElectronicFormat, ::Ifc2x3::IfcCalendarDate* v14_ValidFrom, ::Ifc2x3::IfcCalendarDate* v15_ValidUntil, boost::optional< ::Ifc2x3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc2x3::IfcDocumentStatusEnum::Value > v17_Status) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_DocumentId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DocumentReferences) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DocumentReferences)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v11_CreationTime));data_->setArgument(10,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v12_LastRevisionTime));data_->setArgument(11,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v13_ElectronicFormat));data_->setArgument(12,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v14_ValidFrom));data_->setArgument(13,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v15_ValidUntil));data_->setArgument(14,attr);} if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc2x3::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc2x3::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc2x3::IfcDocumentInformation* Ifc2x3::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc2x3::IfcDocumentInformation>(true); }
@@ -11082,8 +11082,8 @@ Ifc2x3::IfcDoorStyle::IfcDoorStyle(IfcEntityInstanceData* e) : IfcTypeProduct((I
Ifc2x3::IfcDoorStyle::IfcDoorStyle(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc2x3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc2x3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, ::Ifc2x3::IfcDoorStyleOperationEnum::Value v9_OperationType, ::Ifc2x3::IfcDoorStyleConstructionEnum::Value v10_ConstructionType, bool v11_ParameterTakesPrecedence, bool v12_Sizeable) : IfcTypeProduct((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcDoorStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_OperationType,::Ifc2x3::IfcDoorStyleOperationEnum::ToString(v9_OperationType))));data_->setArgument(8,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_ConstructionType,::Ifc2x3::IfcDoorStyleConstructionEnum::ToString(v10_ConstructionType))));data_->setArgument(9,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v11_ParameterTakesPrecedence));data_->setArgument(10,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v12_Sizeable));data_->setArgument(11,attr);} }
// Function implementations for IfcDraughtingCallout
-aggregate_of_instance::ptr Ifc2x3::IfcDraughtingCallout::Contents() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc2x3::IfcDraughtingCallout::setContents(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr Ifc2x3::IfcDraughtingCallout::Contents() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc2x3::IfcDraughtingCalloutElement >(); }
+void Ifc2x3::IfcDraughtingCallout::setContents(aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc2x3::IfcDraughtingCalloutRelationship::list::ptr Ifc2x3::IfcDraughtingCallout::IsRelatedFromCallout() const { return data_->getInverse(IFC2X3_IfcDraughtingCalloutRelationship_type, 3)->as(); }
::Ifc2x3::IfcDraughtingCalloutRelationship::list::ptr Ifc2x3::IfcDraughtingCallout::IsRelatedToCallout() const { return data_->getInverse(IFC2X3_IfcDraughtingCalloutRelationship_type, 2)->as(); }
@@ -11091,7 +11091,7 @@ void Ifc2x3::IfcDraughtingCallout::setContents(aggregate_of_instance::ptr v) { {
const IfcParse::entity& Ifc2x3::IfcDraughtingCallout::declaration() const { return *IFC2X3_IfcDraughtingCallout_type; }
const IfcParse::entity& Ifc2x3::IfcDraughtingCallout::Class() { return *IFC2X3_IfcDraughtingCallout_type; }
Ifc2x3::IfcDraughtingCallout::IfcDraughtingCallout(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcDraughtingCallout_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcDraughtingCallout::IfcDraughtingCallout(aggregate_of_instance::ptr v1_Contents) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcDraughtingCallout_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents));data_->setArgument(0,attr);} }
+Ifc2x3::IfcDraughtingCallout::IfcDraughtingCallout(aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcDraughtingCallout_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcDraughtingCalloutRelationship
boost::optional< std::string > Ifc2x3::IfcDraughtingCalloutRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -11718,14 +11718,14 @@ Ifc2x3::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntityInst
Ifc2x3::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc2x3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc2x3::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc2x3::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc2x3::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc2x3::IfcFillStyleSelect >::ptr Ifc2x3::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc2x3::IfcFillStyleSelect >(); }
+void Ifc2x3::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc2x3::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc2x3::IfcFillAreaStyle::declaration() const { return *IFC2X3_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc2x3::IfcFillAreaStyle::Class() { return *IFC2X3_IfcFillAreaStyle_type; }
Ifc2x3::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} }
+Ifc2x3::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc2x3::IfcFillStyleSelect >::ptr v2_FillStyles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcFillAreaStyleHatching
::Ifc2x3::IfcCurveStyle* Ifc2x3::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc2x3::IfcCurveStyle>(true); }
@@ -11758,8 +11758,8 @@ Ifc2x3::IfcFillAreaStyleTileSymbolWithStyle::IfcFillAreaStyleTileSymbolWithStyle
// Function implementations for IfcFillAreaStyleTiles
::Ifc2x3::IfcOneDirectionRepeatFactor* Ifc2x3::IfcFillAreaStyleTiles::TilingPattern() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc2x3::IfcOneDirectionRepeatFactor>(true); }
void Ifc2x3::IfcFillAreaStyleTiles::setTilingPattern(::Ifc2x3::IfcOneDirectionRepeatFactor* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcFillAreaStyleTiles::Tiles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc2x3::IfcFillAreaStyleTiles::setTiles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc2x3::IfcFillAreaStyleTileShapeSelect >::ptr Ifc2x3::IfcFillAreaStyleTiles::Tiles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc2x3::IfcFillAreaStyleTileShapeSelect >(); }
+void Ifc2x3::IfcFillAreaStyleTiles::setTiles(aggregate_of< ::Ifc2x3::IfcFillAreaStyleTileShapeSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
double Ifc2x3::IfcFillAreaStyleTiles::TilingScale() const { double v = *data_->getArgument(2); return v; }
void Ifc2x3::IfcFillAreaStyleTiles::setTilingScale(double v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -11767,7 +11767,7 @@ void Ifc2x3::IfcFillAreaStyleTiles::setTilingScale(double v) { {IfcWrite::IfcWri
const IfcParse::entity& Ifc2x3::IfcFillAreaStyleTiles::declaration() const { return *IFC2X3_IfcFillAreaStyleTiles_type; }
const IfcParse::entity& Ifc2x3::IfcFillAreaStyleTiles::Class() { return *IFC2X3_IfcFillAreaStyleTiles_type; }
Ifc2x3::IfcFillAreaStyleTiles::IfcFillAreaStyleTiles(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcFillAreaStyleTiles_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcFillAreaStyleTiles::IfcFillAreaStyleTiles(::Ifc2x3::IfcOneDirectionRepeatFactor* v1_TilingPattern, aggregate_of_instance::ptr v2_Tiles, double v3_TilingScale) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcFillAreaStyleTiles_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TilingPattern));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Tiles));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_TilingScale));data_->setArgument(2,attr);} }
+Ifc2x3::IfcFillAreaStyleTiles::IfcFillAreaStyleTiles(::Ifc2x3::IfcOneDirectionRepeatFactor* v1_TilingPattern, aggregate_of< ::Ifc2x3::IfcFillAreaStyleTileShapeSelect >::ptr v2_Tiles, double v3_TilingScale) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcFillAreaStyleTiles_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TilingPattern));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Tiles)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_TilingScale));data_->setArgument(2,attr);} }
// Function implementations for IfcFilterType
::Ifc2x3::IfcFilterTypeEnum::Value Ifc2x3::IfcFilterType::PredefinedType() const { return ::Ifc2x3::IfcFilterTypeEnum::FromString(*data_->getArgument(9)); }
@@ -12067,7 +12067,7 @@ Ifc2x3::IfcGeneralProfileProperties::IfcGeneralProfileProperties(boost::optional
const IfcParse::entity& Ifc2x3::IfcGeometricCurveSet::declaration() const { return *IFC2X3_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc2x3::IfcGeometricCurveSet::Class() { return *IFC2X3_IfcGeometricCurveSet_type; }
Ifc2x3::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc2x3::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc2x3::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc2x3::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -12111,14 +12111,14 @@ Ifc2x3::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubConte
Ifc2x3::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc2x3::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc2x3::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc2x3::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc2x3::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc2x3::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc2x3::IfcGeometricSetSelect >::ptr Ifc2x3::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc2x3::IfcGeometricSetSelect >(); }
+void Ifc2x3::IfcGeometricSet::setElements(aggregate_of< ::Ifc2x3::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc2x3::IfcGeometricSet::declaration() const { return *IFC2X3_IfcGeometricSet_type; }
const IfcParse::entity& Ifc2x3::IfcGeometricSet::Class() { return *IFC2X3_IfcGeometricSet_type; }
Ifc2x3::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc2x3::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc2x3::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGrid
aggregate_of< ::Ifc2x3::IfcGridAxis >::ptr Ifc2x3::IfcGrid::UAxes() const { aggregate_of_instance::ptr es = *data_->getArgument(7); return es->as< ::Ifc2x3::IfcGridAxis >(); }
@@ -12285,14 +12285,14 @@ Ifc2x3::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name, boos
// Function implementations for IfcIrregularTimeSeriesValue
::Ifc2x3::IfcDateTimeSelect* Ifc2x3::IfcIrregularTimeSeriesValue::TimeStamp() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc2x3::IfcDateTimeSelect>(true); }
void Ifc2x3::IfcIrregularTimeSeriesValue::setTimeStamp(::Ifc2x3::IfcDateTimeSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc2x3::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc2x3::IfcValue >::ptr Ifc2x3::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc2x3::IfcValue >(); }
+void Ifc2x3::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc2x3::IfcIrregularTimeSeriesValue::declaration() const { return *IFC2X3_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc2x3::IfcIrregularTimeSeriesValue::Class() { return *IFC2X3_IfcIrregularTimeSeriesValue_type; }
Ifc2x3::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(::Ifc2x3::IfcDateTimeSelect* v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc2x3::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(::Ifc2x3::IfcDateTimeSelect* v1_TimeStamp, aggregate_of< ::Ifc2x3::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBoxType
::Ifc2x3::IfcJunctionBoxTypeEnum::Value Ifc2x3::IfcJunctionBoxType::PredefinedType() const { return ::Ifc2x3::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(9)); }
@@ -12517,7 +12517,7 @@ Ifc2x3::IfcLine::IfcLine(::Ifc2x3::IfcCartesianPoint* v1_Pnt, ::Ifc2x3::IfcVecto
const IfcParse::entity& Ifc2x3::IfcLinearDimension::declaration() const { return *IFC2X3_IfcLinearDimension_type; }
const IfcParse::entity& Ifc2x3::IfcLinearDimension::Class() { return *IFC2X3_IfcLinearDimension_type; }
Ifc2x3::IfcLinearDimension::IfcLinearDimension(IfcEntityInstanceData* e) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcLinearDimension_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcLinearDimension::IfcLinearDimension(aggregate_of_instance::ptr v1_Contents) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcLinearDimension_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents));data_->setArgument(0,attr);} }
+Ifc2x3::IfcLinearDimension::IfcLinearDimension(aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcLinearDimension_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcLocalPlacement
::Ifc2x3::IfcObjectPlacement* Ifc2x3::IfcLocalPlacement::PlacementRelTo() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc2x3::IfcObjectPlacement>(true); }
@@ -12592,8 +12592,8 @@ Ifc2x3::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEnt
Ifc2x3::IfcMaterial::IfcMaterial(std::string v1_Name) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc2x3::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc2x3::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr Ifc2x3::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc2x3::IfcClassificationNotationSelect >(); }
+void Ifc2x3::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc2x3::IfcMaterial* Ifc2x3::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc2x3::IfcMaterial>(true); }
void Ifc2x3::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc2x3::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -12601,7 +12601,7 @@ void Ifc2x3::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc2
const IfcParse::entity& Ifc2x3::IfcMaterialClassificationRelationship::declaration() const { return *IFC2X3_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc2x3::IfcMaterialClassificationRelationship::Class() { return *IFC2X3_IfcMaterialClassificationRelationship_type; }
Ifc2x3::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc2x3::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc2x3::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr v1_MaterialClassifications, ::Ifc2x3::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialDefinitionRepresentation
::Ifc2x3::IfcMaterial* Ifc2x3::IfcMaterialDefinitionRepresentation::RepresentedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc2x3::IfcMaterial>(true); }
@@ -13493,8 +13493,8 @@ std::string Ifc2x3::IfcPresentationLayerAssignment::Name() const { std::string
void Ifc2x3::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc2x3::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc2x3::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc2x3::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc2x3::IfcLayeredItem >::ptr Ifc2x3::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc2x3::IfcLayeredItem >(); }
+void Ifc2x3::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc2x3::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc2x3::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc2x3::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -13502,7 +13502,7 @@ void Ifc2x3::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std:
const IfcParse::entity& Ifc2x3::IfcPresentationLayerAssignment::declaration() const { return *IFC2X3_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc2x3::IfcPresentationLayerAssignment::Class() { return *IFC2X3_IfcPresentationLayerAssignment_type; }
Ifc2x3::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc2x3::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc2x3::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -13511,14 +13511,14 @@ boost::logic::tribool Ifc2x3::IfcPresentationLayerWithStyle::LayerFrozen() const
void Ifc2x3::IfcPresentationLayerWithStyle::setLayerFrozen(boost::logic::tribool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
boost::logic::tribool Ifc2x3::IfcPresentationLayerWithStyle::LayerBlocked() const { boost::logic::tribool v = *data_->getArgument(6); return v; }
void Ifc2x3::IfcPresentationLayerWithStyle::setLayerBlocked(boost::logic::tribool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(6,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcPresentationLayerWithStyle::LayerStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(7); return v; }
-void Ifc2x3::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(7,attr);} }
+aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr Ifc2x3::IfcPresentationLayerWithStyle::LayerStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(7); return es->as< ::Ifc2x3::IfcPresentationStyleSelect >(); }
+void Ifc2x3::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(7,attr);} }
const IfcParse::entity& Ifc2x3::IfcPresentationLayerWithStyle::declaration() const { return *IFC2X3_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc2x3::IfcPresentationLayerWithStyle::Class() { return *IFC2X3_IfcPresentationLayerWithStyle_type; }
Ifc2x3::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of_instance::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles));data_->setArgument(7,attr);} }
+Ifc2x3::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc2x3::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -13531,14 +13531,14 @@ Ifc2x3::IfcPresentationStyle::IfcPresentationStyle(IfcEntityInstanceData* e) : I
Ifc2x3::IfcPresentationStyle::IfcPresentationStyle(boost::optional< std::string > v1_Name) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcPresentationStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } }
// Function implementations for IfcPresentationStyleAssignment
-aggregate_of_instance::ptr Ifc2x3::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc2x3::IfcPresentationStyleAssignment::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr Ifc2x3::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc2x3::IfcPresentationStyleSelect >(); }
+void Ifc2x3::IfcPresentationStyleAssignment::setStyles(aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc2x3::IfcPresentationStyleAssignment::declaration() const { return *IFC2X3_IfcPresentationStyleAssignment_type; }
const IfcParse::entity& Ifc2x3::IfcPresentationStyleAssignment::Class() { return *IFC2X3_IfcPresentationStyleAssignment_type; }
Ifc2x3::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcPresentationStyleAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of_instance::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles));data_->setArgument(0,attr);} }
+Ifc2x3::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcProcedure
std::string Ifc2x3::IfcProcedure::ProcedureID() const { std::string v = *data_->getArgument(5); return v; }
@@ -13773,8 +13773,8 @@ Ifc2x3::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(Ifc
Ifc2x3::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(::Ifc2x3::IfcProperty* v1_DependingProperty, ::Ifc2x3::IfcProperty* v2_DependantProperty, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_Expression) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertyDependencyRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_DependingProperty));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_DependantProperty));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-aggregate_of_instance::ptr Ifc2x3::IfcPropertyEnumeratedValue::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc2x3::IfcPropertyEnumeratedValue::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc2x3::IfcValue >::ptr Ifc2x3::IfcPropertyEnumeratedValue::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc2x3::IfcValue >(); }
+void Ifc2x3::IfcPropertyEnumeratedValue::setEnumerationValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc2x3::IfcPropertyEnumeration* Ifc2x3::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc2x3::IfcPropertyEnumeration>(true); }
void Ifc2x3::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc2x3::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -13782,13 +13782,13 @@ void Ifc2x3::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc2x3::IfcPr
const IfcParse::entity& Ifc2x3::IfcPropertyEnumeratedValue::declaration() const { return *IFC2X3_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc2x3::IfcPropertyEnumeratedValue::Class() { return *IFC2X3_IfcPropertyEnumeratedValue_type; }
Ifc2x3::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_EnumerationValues, ::Ifc2x3::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_EnumerationValues));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc2x3::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcValue >::ptr v3_EnumerationValues, ::Ifc2x3::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_EnumerationValues)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc2x3::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc2x3::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc2x3::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc2x3::IfcValue >::ptr Ifc2x3::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc2x3::IfcValue >(); }
+void Ifc2x3::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc2x3::IfcUnit* Ifc2x3::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc2x3::IfcUnit>(true); }
void Ifc2x3::IfcPropertyEnumeration::setUnit(::Ifc2x3::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -13796,11 +13796,11 @@ void Ifc2x3::IfcPropertyEnumeration::setUnit(::Ifc2x3::IfcUnit* v) { {IfcWrite::
const IfcParse::entity& Ifc2x3::IfcPropertyEnumeration::declaration() const { return *IFC2X3_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc2x3::IfcPropertyEnumeration::Class() { return *IFC2X3_IfcPropertyEnumeration_type; }
Ifc2x3::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc2x3::IfcUnit* v3_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc2x3::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc2x3::IfcValue >::ptr v2_EnumerationValues, ::Ifc2x3::IfcUnit* v3_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-aggregate_of_instance::ptr Ifc2x3::IfcPropertyListValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc2x3::IfcPropertyListValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc2x3::IfcValue >::ptr Ifc2x3::IfcPropertyListValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc2x3::IfcValue >(); }
+void Ifc2x3::IfcPropertyListValue::setListValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc2x3::IfcUnit* Ifc2x3::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc2x3::IfcUnit>(true); }
void Ifc2x3::IfcPropertyListValue::setUnit(::Ifc2x3::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -13808,7 +13808,7 @@ void Ifc2x3::IfcPropertyListValue::setUnit(::Ifc2x3::IfcUnit* v) { {IfcWrite::If
const IfcParse::entity& Ifc2x3::IfcPropertyListValue::declaration() const { return *IFC2X3_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc2x3::IfcPropertyListValue::Class() { return *IFC2X3_IfcPropertyListValue_type; }
Ifc2x3::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_ListValues, ::Ifc2x3::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_ListValues));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc2x3::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcValue >::ptr v3_ListValues, ::Ifc2x3::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_ListValues)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc2x3::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -13855,10 +13855,10 @@ Ifc2x3::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData* e)
Ifc2x3::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Description, ::Ifc2x3::IfcValue* v3_NominalValue, ::Ifc2x3::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-aggregate_of_instance::ptr Ifc2x3::IfcPropertyTableValue::DefiningValues() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc2x3::IfcPropertyTableValue::setDefiningValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcPropertyTableValue::DefinedValues() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc2x3::IfcPropertyTableValue::setDefinedValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc2x3::IfcValue >::ptr Ifc2x3::IfcPropertyTableValue::DefiningValues() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc2x3::IfcValue >(); }
+void Ifc2x3::IfcPropertyTableValue::setDefiningValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc2x3::IfcValue >::ptr Ifc2x3::IfcPropertyTableValue::DefinedValues() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc2x3::IfcValue >(); }
+void Ifc2x3::IfcPropertyTableValue::setDefinedValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc2x3::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc2x3::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc2x3::IfcUnit* Ifc2x3::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc2x3::IfcUnit>(true); }
@@ -13870,7 +13870,7 @@ void Ifc2x3::IfcPropertyTableValue::setDefinedUnit(::Ifc2x3::IfcUnit* v) { {IfcW
const IfcParse::entity& Ifc2x3::IfcPropertyTableValue::declaration() const { return *IFC2X3_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc2x3::IfcPropertyTableValue::Class() { return *IFC2X3_IfcPropertyTableValue_type; }
Ifc2x3::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_DefiningValues, aggregate_of_instance::ptr v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc2x3::IfcUnit* v6_DefiningUnit, ::Ifc2x3::IfcUnit* v7_DefinedUnit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DefiningValues));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DefinedValues));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} }
+Ifc2x3::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcValue >::ptr v3_DefiningValues, aggregate_of< ::Ifc2x3::IfcValue >::ptr v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc2x3::IfcUnit* v6_DefiningUnit, ::Ifc2x3::IfcUnit* v7_DefinedUnit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DefiningValues)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DefinedValues)->generalize());data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} }
// Function implementations for IfcProtectiveDeviceType
::Ifc2x3::IfcProtectiveDeviceTypeEnum::Value Ifc2x3::IfcProtectiveDeviceType::PredefinedType() const { return ::Ifc2x3::IfcProtectiveDeviceTypeEnum::FromString(*data_->getArgument(9)); }
@@ -13970,7 +13970,7 @@ Ifc2x3::IfcQuantityWeight::IfcQuantityWeight(std::string v1_Name, boost::optiona
const IfcParse::entity& Ifc2x3::IfcRadiusDimension::declaration() const { return *IFC2X3_IfcRadiusDimension_type; }
const IfcParse::entity& Ifc2x3::IfcRadiusDimension::Class() { return *IFC2X3_IfcRadiusDimension_type; }
Ifc2x3::IfcRadiusDimension::IfcRadiusDimension(IfcEntityInstanceData* e) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcRadiusDimension_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcRadiusDimension::IfcRadiusDimension(aggregate_of_instance::ptr v1_Contents) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcRadiusDimension_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents));data_->setArgument(0,attr);} }
+Ifc2x3::IfcRadiusDimension::IfcRadiusDimension(aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents) : IfcDimensionCurveDirectedCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcRadiusDimension_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcRailing
boost::optional< ::Ifc2x3::IfcRailingTypeEnum::Value > Ifc2x3::IfcRailing::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc2x3::IfcRailingTypeEnum::FromString(*data_->getArgument(8)); }
@@ -15141,14 +15141,14 @@ Ifc2x3::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData* e)
Ifc2x3::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc2x3::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc2x3::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc2x3::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc2x3::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc2x3::IfcShell >::ptr Ifc2x3::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc2x3::IfcShell >(); }
+void Ifc2x3::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc2x3::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc2x3::IfcShellBasedSurfaceModel::declaration() const { return *IFC2X3_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc2x3::IfcShellBasedSurfaceModel::Class() { return *IFC2X3_IfcShellBasedSurfaceModel_type; }
Ifc2x3::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc2x3::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc2x3::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSimpleProperty
@@ -15846,7 +15846,7 @@ Ifc2x3::IfcStructuralSurfaceMemberVarying::IfcStructuralSurfaceMemberVarying(std
const IfcParse::entity& Ifc2x3::IfcStructuredDimensionCallout::declaration() const { return *IFC2X3_IfcStructuredDimensionCallout_type; }
const IfcParse::entity& Ifc2x3::IfcStructuredDimensionCallout::Class() { return *IFC2X3_IfcStructuredDimensionCallout_type; }
Ifc2x3::IfcStructuredDimensionCallout::IfcStructuredDimensionCallout(IfcEntityInstanceData* e) : IfcDraughtingCallout((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcStructuredDimensionCallout_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcStructuredDimensionCallout::IfcStructuredDimensionCallout(aggregate_of_instance::ptr v1_Contents) : IfcDraughtingCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcStructuredDimensionCallout_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents));data_->setArgument(0,attr);} }
+Ifc2x3::IfcStructuredDimensionCallout::IfcStructuredDimensionCallout(aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents) : IfcDraughtingCallout((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcStructuredDimensionCallout_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Contents)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcStyleModel
@@ -15949,14 +15949,14 @@ Ifc2x3::IfcSurfaceOfRevolution::IfcSurfaceOfRevolution(::Ifc2x3::IfcProfileDef*
// Function implementations for IfcSurfaceStyle
::Ifc2x3::IfcSurfaceSide::Value Ifc2x3::IfcSurfaceStyle::Side() const { return ::Ifc2x3::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc2x3::IfcSurfaceStyle::setSide(::Ifc2x3::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc2x3::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc2x3::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc2x3::IfcSurfaceStyleElementSelect >::ptr Ifc2x3::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc2x3::IfcSurfaceStyleElementSelect >(); }
+void Ifc2x3::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc2x3::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc2x3::IfcSurfaceStyle::declaration() const { return *IFC2X3_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc2x3::IfcSurfaceStyle::Class() { return *IFC2X3_IfcSurfaceStyle_type; }
Ifc2x3::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc2x3::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc2x3::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc2x3::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc2x3::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc2x3::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc2x3::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc2x3::IfcColourRgb* Ifc2x3::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc2x3::IfcColourRgb>(true); }
@@ -16166,8 +16166,8 @@ Ifc2x3::IfcTable::IfcTable(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity()
Ifc2x3::IfcTable::IfcTable(std::string v1_Name, aggregate_of< ::Ifc2x3::IfcTableRow >::ptr v2_Rows) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcTable_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Rows)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcTableRow
-aggregate_of_instance::ptr Ifc2x3::IfcTableRow::RowCells() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc2x3::IfcTableRow::setRowCells(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc2x3::IfcValue >::ptr Ifc2x3::IfcTableRow::RowCells() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc2x3::IfcValue >(); }
+void Ifc2x3::IfcTableRow::setRowCells(aggregate_of< ::Ifc2x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
bool Ifc2x3::IfcTableRow::IsHeading() const { bool v = *data_->getArgument(1); return v; }
void Ifc2x3::IfcTableRow::setIsHeading(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -16176,7 +16176,7 @@ void Ifc2x3::IfcTableRow::setIsHeading(bool v) { {IfcWrite::IfcWriteArgument* at
const IfcParse::entity& Ifc2x3::IfcTableRow::declaration() const { return *IFC2X3_IfcTableRow_type; }
const IfcParse::entity& Ifc2x3::IfcTableRow::Class() { return *IFC2X3_IfcTableRow_type; }
Ifc2x3::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcTableRow::IfcTableRow(aggregate_of_instance::ptr v1_RowCells, bool v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcTableRow_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_RowCells));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_IsHeading));data_->setArgument(1,attr);} }
+Ifc2x3::IfcTableRow::IfcTableRow(aggregate_of< ::Ifc2x3::IfcValue >::ptr v1_RowCells, bool v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcTableRow_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_RowCells)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_IsHeading));data_->setArgument(1,attr);} }
// Function implementations for IfcTankType
::Ifc2x3::IfcTankTypeEnum::Value Ifc2x3::IfcTankType::PredefinedType() const { return ::Ifc2x3::IfcTankTypeEnum::FromString(*data_->getArgument(9)); }
@@ -16388,14 +16388,14 @@ Ifc2x3::IfcTextureCoordinate::IfcTextureCoordinate() : IfcUtil::IfcBaseEntity()
// Function implementations for IfcTextureCoordinateGenerator
std::string Ifc2x3::IfcTextureCoordinateGenerator::Mode() const { std::string v = *data_->getArgument(0); return v; }
void Ifc2x3::IfcTextureCoordinateGenerator::setMode(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcTextureCoordinateGenerator::Parameter() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc2x3::IfcTextureCoordinateGenerator::setParameter(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc2x3::IfcSimpleValue >::ptr Ifc2x3::IfcTextureCoordinateGenerator::Parameter() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc2x3::IfcSimpleValue >(); }
+void Ifc2x3::IfcTextureCoordinateGenerator::setParameter(aggregate_of< ::Ifc2x3::IfcSimpleValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc2x3::IfcTextureCoordinateGenerator::declaration() const { return *IFC2X3_IfcTextureCoordinateGenerator_type; }
const IfcParse::entity& Ifc2x3::IfcTextureCoordinateGenerator::Class() { return *IFC2X3_IfcTextureCoordinateGenerator_type; }
Ifc2x3::IfcTextureCoordinateGenerator::IfcTextureCoordinateGenerator(IfcEntityInstanceData* e) : IfcTextureCoordinate((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcTextureCoordinateGenerator_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcTextureCoordinateGenerator::IfcTextureCoordinateGenerator(std::string v1_Mode, aggregate_of_instance::ptr v2_Parameter) : IfcTextureCoordinate((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcTextureCoordinateGenerator_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Mode));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Parameter));data_->setArgument(1,attr);} }
+Ifc2x3::IfcTextureCoordinateGenerator::IfcTextureCoordinateGenerator(std::string v1_Mode, aggregate_of< ::Ifc2x3::IfcSimpleValue >::ptr v2_Parameter) : IfcTextureCoordinate((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcTextureCoordinateGenerator_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Mode));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Parameter)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcTextureMap
aggregate_of< ::Ifc2x3::IfcVertexBasedTextureMap >::ptr Ifc2x3::IfcTextureMap::TextureMaps() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc2x3::IfcVertexBasedTextureMap >(); }
@@ -16461,18 +16461,18 @@ Ifc2x3::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::
// Function implementations for IfcTimeSeriesReferenceRelationship
::Ifc2x3::IfcTimeSeries* Ifc2x3::IfcTimeSeriesReferenceRelationship::ReferencedTimeSeries() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc2x3::IfcTimeSeries>(true); }
void Ifc2x3::IfcTimeSeriesReferenceRelationship::setReferencedTimeSeries(::Ifc2x3::IfcTimeSeries* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcTimeSeriesReferenceRelationship::TimeSeriesReferences() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc2x3::IfcTimeSeriesReferenceRelationship::setTimeSeriesReferences(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc2x3::IfcDocumentSelect >::ptr Ifc2x3::IfcTimeSeriesReferenceRelationship::TimeSeriesReferences() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc2x3::IfcDocumentSelect >(); }
+void Ifc2x3::IfcTimeSeriesReferenceRelationship::setTimeSeriesReferences(aggregate_of< ::Ifc2x3::IfcDocumentSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc2x3::IfcTimeSeriesReferenceRelationship::declaration() const { return *IFC2X3_IfcTimeSeriesReferenceRelationship_type; }
const IfcParse::entity& Ifc2x3::IfcTimeSeriesReferenceRelationship::Class() { return *IFC2X3_IfcTimeSeriesReferenceRelationship_type; }
Ifc2x3::IfcTimeSeriesReferenceRelationship::IfcTimeSeriesReferenceRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcTimeSeriesReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcTimeSeriesReferenceRelationship::IfcTimeSeriesReferenceRelationship(::Ifc2x3::IfcTimeSeries* v1_ReferencedTimeSeries, aggregate_of_instance::ptr v2_TimeSeriesReferences) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesReferenceRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ReferencedTimeSeries));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_TimeSeriesReferences));data_->setArgument(1,attr);} }
+Ifc2x3::IfcTimeSeriesReferenceRelationship::IfcTimeSeriesReferenceRelationship(::Ifc2x3::IfcTimeSeries* v1_ReferencedTimeSeries, aggregate_of< ::Ifc2x3::IfcDocumentSelect >::ptr v2_TimeSeriesReferences) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesReferenceRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ReferencedTimeSeries));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_TimeSeriesReferences)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcTimeSeriesSchedule
-boost::optional< aggregate_of_instance::ptr > Ifc2x3::IfcTimeSeriesSchedule::ApplicableDates() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc2x3::IfcTimeSeriesSchedule::setApplicableDates(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(5,attr);} }
+boost::optional< aggregate_of< ::Ifc2x3::IfcDateTimeSelect >::ptr > Ifc2x3::IfcTimeSeriesSchedule::ApplicableDates() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc2x3::IfcDateTimeSelect >(); }
+void Ifc2x3::IfcTimeSeriesSchedule::setApplicableDates(boost::optional< aggregate_of< ::Ifc2x3::IfcDateTimeSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(5,attr);} }
::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::Value Ifc2x3::IfcTimeSeriesSchedule::TimeSeriesScheduleType() const { return ::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::FromString(*data_->getArgument(6)); }
void Ifc2x3::IfcTimeSeriesSchedule::setTimeSeriesScheduleType(::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::ToString(v)));data_->setArgument(6,attr);} }
::Ifc2x3::IfcTimeSeries* Ifc2x3::IfcTimeSeriesSchedule::TimeSeries() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(7)))->as<::Ifc2x3::IfcTimeSeries>(true); }
@@ -16482,17 +16482,17 @@ void Ifc2x3::IfcTimeSeriesSchedule::setTimeSeries(::Ifc2x3::IfcTimeSeries* v) {
const IfcParse::entity& Ifc2x3::IfcTimeSeriesSchedule::declaration() const { return *IFC2X3_IfcTimeSeriesSchedule_type; }
const IfcParse::entity& Ifc2x3::IfcTimeSeriesSchedule::Class() { return *IFC2X3_IfcTimeSeriesSchedule_type; }
Ifc2x3::IfcTimeSeriesSchedule::IfcTimeSeriesSchedule(IfcEntityInstanceData* e) : IfcControl((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcTimeSeriesSchedule_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcTimeSeriesSchedule::IfcTimeSeriesSchedule(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< aggregate_of_instance::ptr > v6_ApplicableDates, ::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::Value v7_TimeSeriesScheduleType, ::Ifc2x3::IfcTimeSeries* v8_TimeSeries) : IfcControl((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesSchedule_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_ApplicableDates) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_ApplicableDates));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v7_TimeSeriesScheduleType,::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::ToString(v7_TimeSeriesScheduleType))));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_TimeSeries));data_->setArgument(7,attr);} }
+Ifc2x3::IfcTimeSeriesSchedule::IfcTimeSeriesSchedule(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< aggregate_of< ::Ifc2x3::IfcDateTimeSelect >::ptr > v6_ApplicableDates, ::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::Value v7_TimeSeriesScheduleType, ::Ifc2x3::IfcTimeSeries* v8_TimeSeries) : IfcControl((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesSchedule_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_ApplicableDates) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_ApplicableDates)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v7_TimeSeriesScheduleType,::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::ToString(v7_TimeSeriesScheduleType))));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_TimeSeries));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc2x3::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc2x3::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc2x3::IfcValue >::ptr Ifc2x3::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc2x3::IfcValue >(); }
+void Ifc2x3::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc2x3::IfcTimeSeriesValue::declaration() const { return *IFC2X3_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc2x3::IfcTimeSeriesValue::Class() { return *IFC2X3_IfcTimeSeriesValue_type; }
Ifc2x3::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc2x3::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc2x3::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -16563,10 +16563,10 @@ Ifc2x3::IfcTrapeziumProfileDef::IfcTrapeziumProfileDef(::Ifc2x3::IfcProfileTypeE
// Function implementations for IfcTrimmedCurve
::Ifc2x3::IfcCurve* Ifc2x3::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc2x3::IfcCurve>(true); }
void Ifc2x3::IfcTrimmedCurve::setBasisCurve(::Ifc2x3::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc2x3::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc2x3::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc2x3::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr Ifc2x3::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc2x3::IfcTrimmingSelect >(); }
+void Ifc2x3::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr Ifc2x3::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc2x3::IfcTrimmingSelect >(); }
+void Ifc2x3::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc2x3::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc2x3::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc2x3::IfcTrimmingPreference::Value Ifc2x3::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc2x3::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -16576,7 +16576,7 @@ void Ifc2x3::IfcTrimmedCurve::setMasterRepresentation(::Ifc2x3::IfcTrimmingPrefe
const IfcParse::entity& Ifc2x3::IfcTrimmedCurve::declaration() const { return *IFC2X3_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc2x3::IfcTrimmedCurve::Class() { return *IFC2X3_IfcTrimmedCurve_type; }
Ifc2x3::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC2X3_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc2x3::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc2x3::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc2x3::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc2x3::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc2x3::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc2x3::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc2x3::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundleType
::Ifc2x3::IfcTubeBundleTypeEnum::Value Ifc2x3::IfcTubeBundleType::PredefinedType() const { return ::Ifc2x3::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(9)); }
@@ -16648,14 +16648,14 @@ Ifc2x3::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) : Ifc
Ifc2x3::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc2x3::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc2x3::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope, boost::optional< double > v11_CentreOfGravityInX) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC2X3_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc2x3::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CentreOfGravityInX) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CentreOfGravityInX));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc2x3::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc2x3::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc2x3::IfcUnit >::ptr Ifc2x3::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc2x3::IfcUnit >(); }
+void Ifc2x3::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc2x3::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc2x3::IfcUnitAssignment::declaration() const { return *IFC2X3_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc2x3::IfcUnitAssignment::Class() { return *IFC2X3_IfcUnitAssignment_type; }
Ifc2x3::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC2X3_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc2x3::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc2x3::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc2x3::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC2X3_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryEquipmentType
::Ifc2x3::IfcUnitaryEquipmentTypeEnum::Value Ifc2x3::IfcUnitaryEquipmentType::PredefinedType() const { return ::Ifc2x3::IfcUnitaryEquipmentTypeEnum::FromString(*data_->getArgument(9)); }
diff --git a/src/ifcparse/Ifc2x3.h b/src/ifcparse/Ifc2x3.h
index a9ff0fbf90..9e81fc39fa 100644
--- a/src/ifcparse/Ifc2x3.h
+++ b/src/ifcparse/Ifc2x3.h
@@ -65,6 +65,7 @@ class Ifc2DCompositeCurve; class IfcActionRequest; class IfcActor; class IfcActo
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -112,6 +115,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// The character style select allows for a selection of character styles for text. Currently only text color and background color is selectable.
///
@@ -124,11 +128,13 @@ public:
class IFC_PARSE_API IfcCharacterStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCharacterStyleSelect > list;
};
class IFC_PARSE_API IfcClassificationNotationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationNotationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -138,6 +144,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -145,11 +152,13 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
class IFC_PARSE_API IfcConditionCriterionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcConditionCriterionSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -160,6 +169,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -169,6 +179,7 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -181,6 +192,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -190,11 +202,13 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
class IFC_PARSE_API IfcDateTimeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDateTimeSelect > list;
};
/// The defined symbol select is a selection between a predefined symbol and an externally defined symbol.
///
@@ -204,6 +218,7 @@ public:
class IFC_PARSE_API IfcDefinedSymbolSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinedSymbolSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -282,6 +297,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -294,11 +310,13 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
class IFC_PARSE_API IfcDraughtingCalloutElement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDraughtingCalloutElement > list;
};
/// The fill area style tile shape select is used to make a selection for the style of the fill area style tile.
///
@@ -310,6 +328,7 @@ public:
class IFC_PARSE_API IfcFillAreaStyleTileShapeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillAreaStyleTileShapeSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -320,6 +339,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -329,6 +349,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -336,6 +357,7 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -347,6 +369,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -361,6 +384,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -387,6 +411,7 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -417,6 +442,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -430,6 +456,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -446,6 +473,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -453,11 +481,13 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
class IFC_PARSE_API IfcOrientationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcOrientationSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -469,6 +499,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// Definition from ISO/CD 10303-46:1992: The presentation style select is a selection of one of many kinds of styles, a different one for each kind of geometric representation item to be styled.
///
@@ -481,6 +512,7 @@ public:
class IFC_PARSE_API IfcPresentationStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPresentationStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -496,6 +528,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -519,6 +552,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -535,6 +569,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -549,6 +584,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -562,6 +598,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -575,6 +612,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -588,6 +626,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// The symbol style select allows for the selection of styles to be assigned to an annotated symbol.
///
@@ -599,6 +638,7 @@ public:
class IFC_PARSE_API IfcSymbolStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSymbolStyleSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -610,6 +650,7 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// The text style select allows for the selection of styles to be assigned to an annotated text. The text style determines the text model that affect the visual presentation of characters, spaces, words, and paragraphs. There are two choices:
///
@@ -623,6 +664,7 @@ public:
class IFC_PARSE_API IfcTextStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -632,6 +674,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -649,6 +692,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -663,6 +707,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -675,6 +720,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
class IFC_PARSE_API IfcActionSourceTypeEnum : public IfcUtil::IfcBaseType {
/// Definition from IAI:This enumeration type contains possible
@@ -8375,12 +8421,12 @@ class IFC_PARSE_API IfcConstraintClassificationRelationship : public IfcUtil::I
public:
::Ifc2x3::IfcConstraint* ClassifiedConstraint() const;
void setClassifiedConstraint(::Ifc2x3::IfcConstraint* v);
- aggregate_of_instance::ptr RelatedClassifications() const;
- void setRelatedClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr RelatedClassifications() const;
+ void setRelatedClassifications(aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcConstraintClassificationRelationship (IfcEntityInstanceData* e);
- IfcConstraintClassificationRelationship (::Ifc2x3::IfcConstraint* v1_ClassifiedConstraint, aggregate_of_instance::ptr v2_RelatedClassifications);
+ IfcConstraintClassificationRelationship (::Ifc2x3::IfcConstraint* v1_ClassifiedConstraint, aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr v2_RelatedClassifications);
typedef aggregate_of< IfcConstraintClassificationRelationship > list;
};
/// An IfcConstraintRelationship is an objectified relationship that enables instances of IfcConstraint and its
@@ -8748,8 +8794,8 @@ public:
::Ifc2x3::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc2x3::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -8788,7 +8834,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_DocumentId, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< aggregate_of< ::Ifc2x3::IfcDocumentReference >::ptr > v4_DocumentReferences, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc2x3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, ::Ifc2x3::IfcDateAndTime* v11_CreationTime, ::Ifc2x3::IfcDateAndTime* v12_LastRevisionTime, ::Ifc2x3::IfcDocumentElectronicFormat* v13_ElectronicFormat, ::Ifc2x3::IfcCalendarDate* v14_ValidFrom, ::Ifc2x3::IfcCalendarDate* v15_ValidUntil, boost::optional< ::Ifc2x3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc2x3::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_DocumentId, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< aggregate_of< ::Ifc2x3::IfcDocumentReference >::ptr > v4_DocumentReferences, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc2x3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v10_Editors, ::Ifc2x3::IfcDateAndTime* v11_CreationTime, ::Ifc2x3::IfcDateAndTime* v12_LastRevisionTime, ::Ifc2x3::IfcDocumentElectronicFormat* v13_ElectronicFormat, ::Ifc2x3::IfcCalendarDate* v14_ValidFrom, ::Ifc2x3::IfcCalendarDate* v15_ValidUntil, boost::optional< ::Ifc2x3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc2x3::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -8991,12 +9037,12 @@ public:
::Ifc2x3::IfcDateTimeSelect* TimeStamp() const;
void setTimeStamp(::Ifc2x3::IfcDateTimeSelect* v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (::Ifc2x3::IfcDateTimeSelect* v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (::Ifc2x3::IfcDateTimeSelect* v1_TimeStamp, aggregate_of< ::Ifc2x3::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -9169,15 +9215,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr v);
/// Material being classified.
::Ifc2x3::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc2x3::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc2x3::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc2x3::IfcClassificationNotationSelect >::ptr v1_MaterialClassifications, ::Ifc2x3::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialLayer is a single and identifiable part of an element which is constructed of a number of layers (one or more). Each IfcMaterialLayer has a constant thickness and is located relative to the referencing IfcMaterialLayerSet along the MlsBase.
@@ -10045,15 +10091,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc2x3::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -10085,12 +10131,12 @@ public:
/// NOTEÂ In most cases the assignment of styles to a layer is restricted to an IfcCurveStyle representing the layer curve colour, layer curve thickness, and layer curve type.
///
/// IFC2x4 CHANGEÂ The data type has been changed from IfcPresentationStyleSelect (now deprecated) to IfcPresentationStyle.
- aggregate_of_instance::ptr LayerStyles() const;
- void setLayerStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr LayerStyles() const;
+ void setLayerStyles(aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of_instance::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -10117,12 +10163,12 @@ public:
class IFC_PARSE_API IfcPresentationStyleAssignment : public IfcUtil::IfcBaseEntity {
public:
/// A set of presentation styles that are assigned to styled items.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationStyleAssignment (IfcEntityInstanceData* e);
- IfcPresentationStyleAssignment (aggregate_of_instance::ptr v1_Styles);
+ IfcPresentationStyleAssignment (aggregate_of< ::Ifc2x3::IfcPresentationStyleSelect >::ptr v1_Styles);
typedef aggregate_of< IfcPresentationStyleAssignment > list;
};
/// IfcProductRepresentation defines a representation of a
@@ -10502,15 +10548,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc2x3::IfcUnit* Unit() const;
void setUnit(::Ifc2x3::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc2x3::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc2x3::IfcValue >::ptr v2_EnumerationValues, ::Ifc2x3::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -11360,12 +11406,12 @@ public:
::Ifc2x3::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc2x3::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc2x3::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc2x3::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc2x3::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc2x3::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -11643,8 +11689,8 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- aggregate_of_instance::ptr RowCells() const;
- void setRowCells(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcValue >::ptr RowCells() const;
+ void setRowCells(aggregate_of< ::Ifc2x3::IfcValue >::ptr v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
bool IsHeading() const;
void setIsHeading(bool v);
@@ -11652,7 +11698,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (aggregate_of_instance::ptr v1_RowCells, bool v2_IsHeading);
+ IfcTableRow (aggregate_of< ::Ifc2x3::IfcValue >::ptr v1_RowCells, bool v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// Definition: Address to which telephone, electronic mail and other forms of telecommunications should be addressed.
@@ -11999,12 +12045,12 @@ public:
/// The parameters used as arguments by the function as specified by Mode.
///
/// IFC2x4 CHANGEÂ Made optional data type restricted to REAL.
- aggregate_of_instance::ptr Parameter() const;
- void setParameter(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcSimpleValue >::ptr Parameter() const;
+ void setParameter(aggregate_of< ::Ifc2x3::IfcSimpleValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTextureCoordinateGenerator (IfcEntityInstanceData* e);
- IfcTextureCoordinateGenerator (std::string v1_Mode, aggregate_of_instance::ptr v2_Parameter);
+ IfcTextureCoordinateGenerator (std::string v1_Mode, aggregate_of< ::Ifc2x3::IfcSimpleValue >::ptr v2_Parameter);
typedef aggregate_of< IfcTextureCoordinateGenerator > list;
};
/// An IfcTextureMap provides the mapping of the
@@ -12166,12 +12212,12 @@ class IFC_PARSE_API IfcTimeSeriesReferenceRelationship : public IfcUtil::IfcBas
public:
::Ifc2x3::IfcTimeSeries* ReferencedTimeSeries() const;
void setReferencedTimeSeries(::Ifc2x3::IfcTimeSeries* v);
- aggregate_of_instance::ptr TimeSeriesReferences() const;
- void setTimeSeriesReferences(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcDocumentSelect >::ptr TimeSeriesReferences() const;
+ void setTimeSeriesReferences(aggregate_of< ::Ifc2x3::IfcDocumentSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesReferenceRelationship (IfcEntityInstanceData* e);
- IfcTimeSeriesReferenceRelationship (::Ifc2x3::IfcTimeSeries* v1_ReferencedTimeSeries, aggregate_of_instance::ptr v2_TimeSeriesReferences);
+ IfcTimeSeriesReferenceRelationship (::Ifc2x3::IfcTimeSeries* v1_ReferencedTimeSeries, aggregate_of< ::Ifc2x3::IfcDocumentSelect >::ptr v2_TimeSeriesReferences);
typedef aggregate_of< IfcTimeSeriesReferenceRelationship > list;
};
/// A time series value is a list of values that comprise the time series. At least one value must be supplied. Applications are expected to normalize values by applying the following three rules:
@@ -12186,12 +12232,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc2x3::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -12257,12 +12303,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc2x3::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc2x3::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -13448,12 +13494,12 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle, public IfcPresentationStyleSelect {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc2x3::IfcFillStyleSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc2x3::IfcFillStyleSelect >::ptr v2_FillStyles);
typedef aggregate_of< IfcFillAreaStyle > list;
};
@@ -13657,12 +13703,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc2x3::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc2x3::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -15074,15 +15120,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc2x3::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc2x3::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_EnumerationValues, ::Ifc2x3::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcValue >::ptr v3_EnumerationValues, ::Ifc2x3::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -15155,15 +15201,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc2x3::IfcUnit* Unit() const;
void setUnit(::Ifc2x3::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_ListValues, ::Ifc2x3::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcValue >::ptr v3_ListValues, ::Ifc2x3::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -15432,13 +15478,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- aggregate_of_instance::ptr DefiningValues() const;
- void setDefiningValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcValue >::ptr DefiningValues() const;
+ void setDefiningValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- aggregate_of_instance::ptr DefinedValues() const;
- void setDefinedValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcValue >::ptr DefinedValues() const;
+ void setDefinedValues(aggregate_of< ::Ifc2x3::IfcValue >::ptr v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -15451,7 +15497,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_DefiningValues, aggregate_of_instance::ptr v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc2x3::IfcUnit* v6_DefiningUnit, ::Ifc2x3::IfcUnit* v7_DefinedUnit);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc2x3::IfcValue >::ptr v3_DefiningValues, aggregate_of< ::Ifc2x3::IfcValue >::ptr v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc2x3::IfcUnit* v6_DefiningUnit, ::Ifc2x3::IfcUnit* v7_DefinedUnit);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// IfcRectangleProfileDef defines a rectangle as the profile definition used by the swept surface geometry or the swept area solid. It is given by its X extent and its Y extent, and placed within the 2D position coordinate system, established by the Position attribute. It is placed centric within the position coordinate system.
@@ -15726,12 +15772,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc2x3::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc2x3::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// Definition from IAI: Describes slippage in support conditions or connection conditions. Slippage means that a relative displacement may occur in a support or connection before support or connection reactions are awoken.
@@ -18110,14 +18156,14 @@ public:
class IFC_PARSE_API IfcDraughtingCallout : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr Contents() const;
- void setContents(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr Contents() const;
+ void setContents(aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v);
aggregate_of< IfcDraughtingCalloutRelationship >::ptr IsRelatedFromCallout() const; // INVERSE IfcDraughtingCalloutRelationship::RelatedDraughtingCallout
aggregate_of< IfcDraughtingCalloutRelationship >::ptr IsRelatedToCallout() const; // INVERSE IfcDraughtingCalloutRelationship::RelatingDraughtingCallout
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDraughtingCallout (IfcEntityInstanceData* e);
- IfcDraughtingCallout (aggregate_of_instance::ptr v1_Contents);
+ IfcDraughtingCallout (aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents);
typedef aggregate_of< IfcDraughtingCallout > list;
};
/// The draughting pre defined colour is a pre defined colour for the purpose to identify a colour by name. Allowable names are:
@@ -18645,15 +18691,15 @@ public:
::Ifc2x3::IfcOneDirectionRepeatFactor* TilingPattern() const;
void setTilingPattern(::Ifc2x3::IfcOneDirectionRepeatFactor* v);
/// A set of constituents of the tile.
- aggregate_of_instance::ptr Tiles() const;
- void setTiles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcFillAreaStyleTileShapeSelect >::ptr Tiles() const;
+ void setTiles(aggregate_of< ::Ifc2x3::IfcFillAreaStyleTileShapeSelect >::ptr v);
/// The scale factor applied to each tile as it is placed in the annotation fill area.
double TilingScale() const;
void setTilingScale(double v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyleTiles (IfcEntityInstanceData* e);
- IfcFillAreaStyleTiles (::Ifc2x3::IfcOneDirectionRepeatFactor* v1_TilingPattern, aggregate_of_instance::ptr v2_Tiles, double v3_TilingScale);
+ IfcFillAreaStyleTiles (::Ifc2x3::IfcOneDirectionRepeatFactor* v1_TilingPattern, aggregate_of< ::Ifc2x3::IfcFillAreaStyleTileShapeSelect >::ptr v2_Tiles, double v3_TilingScale);
typedef aggregate_of< IfcFillAreaStyleTiles > list;
};
@@ -18791,7 +18837,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc2x3::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -22339,7 +22385,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcStructuredDimensionCallout (IfcEntityInstanceData* e);
- IfcStructuredDimensionCallout (aggregate_of_instance::ptr v1_Contents);
+ IfcStructuredDimensionCallout (aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents);
typedef aggregate_of< IfcStructuredDimensionCallout > list;
};
/// The IfcSurfaceCurveSweptAreaSolid is the result of
@@ -24135,8 +24181,8 @@ public:
/// STARTED
boost::optional< std::string > Status() const;
void setStatus(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > TargetUsers() const;
- void setTargetUsers(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > TargetUsers() const;
+ void setTargetUsers(boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v);
/// The date and time that this cost schedule is updated; this allows tracking the schedule history.
///
/// IFC2x4 CHANGE Type changed from IfcDateTimeSelect.
@@ -24152,7 +24198,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcCostSchedule (IfcEntityInstanceData* e);
- IfcCostSchedule (std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc2x3::IfcActorSelect* v6_SubmittedBy, ::Ifc2x3::IfcActorSelect* v7_PreparedBy, ::Ifc2x3::IfcDateTimeSelect* v8_SubmittedOn, boost::optional< std::string > v9_Status, boost::optional< aggregate_of_instance::ptr > v10_TargetUsers, ::Ifc2x3::IfcDateTimeSelect* v11_UpdateDate, std::string v12_ID, ::Ifc2x3::IfcCostScheduleTypeEnum::Value v13_PredefinedType);
+ IfcCostSchedule (std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc2x3::IfcActorSelect* v6_SubmittedBy, ::Ifc2x3::IfcActorSelect* v7_PreparedBy, ::Ifc2x3::IfcDateTimeSelect* v8_SubmittedOn, boost::optional< std::string > v9_Status, boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v10_TargetUsers, ::Ifc2x3::IfcDateTimeSelect* v11_UpdateDate, std::string v12_ID, ::Ifc2x3::IfcCostScheduleTypeEnum::Value v13_PredefinedType);
typedef aggregate_of< IfcCostSchedule > list;
};
/// Definition from IAI: The element type
@@ -24301,7 +24347,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDimensionCurveDirectedCallout (IfcEntityInstanceData* e);
- IfcDimensionCurveDirectedCallout (aggregate_of_instance::ptr v1_Contents);
+ IfcDimensionCurveDirectedCallout (aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents);
typedef aggregate_of< IfcDimensionCurveDirectedCallout > list;
};
/// Definition from IAI: The
@@ -26008,7 +26054,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcLinearDimension (IfcEntityInstanceData* e);
- IfcLinearDimension (aggregate_of_instance::ptr v1_Contents);
+ IfcLinearDimension (aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents);
typedef aggregate_of< IfcLinearDimension > list;
};
/// Definition from IAI: Fasteners connecting building elements mechanically. A single instance of this class may represent one or many of actual mechanical fasteners, for example an array of bolts or a row of nails.
@@ -27272,7 +27318,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRadiusDimension (IfcEntityInstanceData* e);
- IfcRadiusDimension (aggregate_of_instance::ptr v1_Contents);
+ IfcRadiusDimension (aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents);
typedef aggregate_of< IfcRadiusDimension > list;
};
/// Definition from IAI: The element type (IfcRailingType)
@@ -28867,8 +28913,8 @@ public:
class IFC_PARSE_API IfcTimeSeriesSchedule : public IfcControl {
public:
- boost::optional< aggregate_of_instance::ptr > ApplicableDates() const;
- void setApplicableDates(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc2x3::IfcDateTimeSelect >::ptr > ApplicableDates() const;
+ void setApplicableDates(boost::optional< aggregate_of< ::Ifc2x3::IfcDateTimeSelect >::ptr > v);
::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::Value TimeSeriesScheduleType() const;
void setTimeSeriesScheduleType(::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::Value v);
::Ifc2x3::IfcTimeSeries* TimeSeries() const;
@@ -28876,7 +28922,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesSchedule (IfcEntityInstanceData* e);
- IfcTimeSeriesSchedule (std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< aggregate_of_instance::ptr > v6_ApplicableDates, ::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::Value v7_TimeSeriesScheduleType, ::Ifc2x3::IfcTimeSeries* v8_TimeSeries);
+ IfcTimeSeriesSchedule (std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< aggregate_of< ::Ifc2x3::IfcDateTimeSelect >::ptr > v6_ApplicableDates, ::Ifc2x3::IfcTimeSeriesScheduleTypeEnum::Value v7_TimeSeriesScheduleType, ::Ifc2x3::IfcTimeSeries* v8_TimeSeries);
typedef aggregate_of< IfcTimeSeriesSchedule > list;
};
/// The energy conversion device type IfcTransformerType defines commonly shared information for occurrences of transformers. The set of shared information may include:
@@ -29133,11 +29179,11 @@ public:
::Ifc2x3::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc2x3::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -29147,7 +29193,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc2x3::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc2x3::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc2x3::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc2x3::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc2x3::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -29940,7 +29986,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcAngularDimension (IfcEntityInstanceData* e);
- IfcAngularDimension (aggregate_of_instance::ptr v1_Contents);
+ IfcAngularDimension (aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents);
typedef aggregate_of< IfcAngularDimension > list;
};
/// An asset is a uniquely identifiable grouping of elements acting as a single entity that has a financial value or that can be operated on as a single unit.
@@ -31571,14 +31617,14 @@ public:
/// Figure 184 — Construction material resource assignment
class IFC_PARSE_API IfcConstructionMaterialResource : public IfcConstructionResource {
public:
- boost::optional< aggregate_of_instance::ptr > Suppliers() const;
- void setSuppliers(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > Suppliers() const;
+ void setSuppliers(boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v);
boost::optional< double > UsageRatio() const;
void setUsageRatio(boost::optional< double > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcConstructionMaterialResource (IfcEntityInstanceData* e);
- IfcConstructionMaterialResource (std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_ResourceIdentifier, boost::optional< std::string > v7_ResourceGroup, boost::optional< ::Ifc2x3::IfcResourceConsumptionEnum::Value > v8_ResourceConsumption, ::Ifc2x3::IfcMeasureWithUnit* v9_BaseQuantity, boost::optional< aggregate_of_instance::ptr > v10_Suppliers, boost::optional< double > v11_UsageRatio);
+ IfcConstructionMaterialResource (std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_ResourceIdentifier, boost::optional< std::string > v7_ResourceGroup, boost::optional< ::Ifc2x3::IfcResourceConsumptionEnum::Value > v8_ResourceConsumption, ::Ifc2x3::IfcMeasureWithUnit* v9_BaseQuantity, boost::optional< aggregate_of< ::Ifc2x3::IfcActorSelect >::ptr > v10_Suppliers, boost::optional< double > v11_UsageRatio);
typedef aggregate_of< IfcConstructionMaterialResource > list;
};
/// IfcConstructionProductResource defines the role of a product that is consumed (wholly or partially), or occupied in the performance of construction.
@@ -32122,7 +32168,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDiameterDimension (IfcEntityInstanceData* e);
- IfcDiameterDimension (aggregate_of_instance::ptr v1_Contents);
+ IfcDiameterDimension (aggregate_of< ::Ifc2x3::IfcDraughtingCalloutElement >::ptr v1_Contents);
typedef aggregate_of< IfcDiameterDimension > list;
};
/// Definition from IAI: Representation of different kinds of
diff --git a/src/ifcparse/Ifc4-definitions.h b/src/ifcparse/Ifc4-definitions.h
index 29b262df31..53c877533f 100644
--- a/src/ifcparse/Ifc4-definitions.h
+++ b/src/ifcparse/Ifc4-definitions.h
@@ -3659,3 +3659,52 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectObjectAssignment
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSiUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4.cpp b/src/ifcparse/Ifc4.cpp
index 3f0b878a59..49d13fd375 100644
--- a/src/ifcparse/Ifc4.cpp
+++ b/src/ifcparse/Ifc4.cpp
@@ -13335,8 +13335,8 @@ boost::optional< std::string > Ifc4::IfcDocumentInformation::Revision() const {
void Ifc4::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4::IfcActorSelect* Ifc4::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4::IfcActorSelect>(true); }
void Ifc4::IfcDocumentInformation::setDocumentOwner(::Ifc4::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4::IfcActorSelect >::ptr > Ifc4::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4::IfcActorSelect >(); }
+void Ifc4::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -13360,7 +13360,7 @@ void Ifc4::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4::IfcDocumen
const IfcParse::entity& Ifc4::IfcDocumentInformation::declaration() const { return *IFC4_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4::IfcDocumentInformation::Class() { return *IFC4_IfcDocumentInformation_type; }
Ifc4::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4::IfcDocumentInformation* Ifc4::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4::IfcDocumentInformation>(true); }
@@ -14007,14 +14007,14 @@ Ifc4::IfcExternalReference::IfcExternalReference(boost::optional< std::string >
// Function implementations for IfcExternalReferenceRelationship
::Ifc4::IfcExternalReference* Ifc4::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4::IfcExternalReference>(true); }
void Ifc4::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr Ifc4::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4::IfcResourceObjectSelect >(); }
+void Ifc4::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4::IfcExternalReferenceRelationship::declaration() const { return *IFC4_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4::IfcExternalReferenceRelationship::Class() { return *IFC4_IfcExternalReferenceRelationship_type; }
Ifc4::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4::IfcExternalSpatialElementTypeEnum::Value > Ifc4::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -14239,8 +14239,8 @@ Ifc4::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntityInstan
Ifc4::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4::IfcFillStyleSelect >::ptr Ifc4::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4::IfcFillStyleSelect >(); }
+void Ifc4::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4::IfcFillAreaStyle::ModelorDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4::IfcFillAreaStyle::setModelorDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -14248,7 +14248,7 @@ void Ifc4::IfcFillAreaStyle::setModelorDraughting(boost::optional< bool > v) { {
const IfcParse::entity& Ifc4::IfcFillAreaStyle::declaration() const { return *IFC4_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4::IfcFillAreaStyle::Class() { return *IFC4_IfcFillAreaStyle_type; }
Ifc4::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelorDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelorDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelorDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelorDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4::IfcCurveStyle* Ifc4::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4::IfcCurveStyle>(true); }
@@ -14574,7 +14574,7 @@ Ifc4::IfcGeographicElementType::IfcGeographicElementType(std::string v1_GlobalId
const IfcParse::entity& Ifc4::IfcGeometricCurveSet::declaration() const { return *IFC4_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4::IfcGeometricCurveSet::Class() { return *IFC4_IfcGeometricCurveSet_type; }
Ifc4::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -14619,14 +14619,14 @@ Ifc4::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext
Ifc4::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4::IfcGeometricSetSelect >::ptr Ifc4::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4::IfcGeometricSetSelect >(); }
+void Ifc4::IfcGeometricSet::setElements(aggregate_of< ::Ifc4::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4::IfcGeometricSet::declaration() const { return *IFC4_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4::IfcGeometricSet::Class() { return *IFC4_IfcGeometricSet_type; }
Ifc4::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGrid
aggregate_of< ::Ifc4::IfcGridAxis >::ptr Ifc4::IfcGrid::UAxes() const { aggregate_of_instance::ptr es = *data_->getArgument(7); return es->as< ::Ifc4::IfcGridAxis >(); }
@@ -14787,8 +14787,8 @@ Ifc4::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4::IfcTessellatedFaceSet* v1
// Function implementations for IfcIndexedPolyCurve
::Ifc4::IfcCartesianPointList* Ifc4::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4::IfcCartesianPointList>(true); }
void Ifc4::IfcIndexedPolyCurve::setPoints(::Ifc4::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4::IfcSegmentIndexSelect >::ptr > Ifc4::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4::IfcSegmentIndexSelect >(); }
+void Ifc4::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4::IfcIndexedPolyCurve::SelfIntersect() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -14796,7 +14796,7 @@ void Ifc4::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {I
const IfcParse::entity& Ifc4::IfcIndexedPolyCurve::declaration() const { return *IFC4_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4::IfcIndexedPolyCurve::Class() { return *IFC4_IfcIndexedPolyCurve_type; }
Ifc4::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -14902,14 +14902,14 @@ Ifc4::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name, boost:
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4::IfcValue >::ptr Ifc4::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4::IfcValue >(); }
+void Ifc4::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4::IfcIrregularTimeSeriesValue::Class() { return *IFC4_IfcIrregularTimeSeriesValue_type; }
Ifc4::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4::IfcJunctionBoxTypeEnum::Value > Ifc4::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -15266,8 +15266,8 @@ Ifc4::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDefinition
Ifc4::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4::IfcClassificationSelect >::ptr Ifc4::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4::IfcClassificationSelect >(); }
+void Ifc4::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4::IfcMaterial* Ifc4::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4::IfcMaterial>(true); }
void Ifc4::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -15275,7 +15275,7 @@ void Ifc4::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4::
const IfcParse::entity& Ifc4::IfcMaterialClassificationRelationship::declaration() const { return *IFC4_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4::IfcMaterialClassificationRelationship::Class() { return *IFC4_IfcMaterialClassificationRelationship_type; }
Ifc4::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -16364,8 +16364,8 @@ std::string Ifc4::IfcPresentationLayerAssignment::Name() const { std::string v
void Ifc4::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4::IfcLayeredItem >::ptr Ifc4::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4::IfcLayeredItem >(); }
+void Ifc4::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -16373,7 +16373,7 @@ void Ifc4::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::s
const IfcParse::entity& Ifc4::IfcPresentationLayerAssignment::declaration() const { return *IFC4_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4::IfcPresentationLayerAssignment::Class() { return *IFC4_IfcPresentationLayerAssignment_type; }
Ifc4::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -16389,7 +16389,7 @@ void Ifc4::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::Ifc4::I
const IfcParse::entity& Ifc4::IfcPresentationLayerWithStyle::declaration() const { return *IFC4_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4::IfcPresentationLayerWithStyle::Class() { return *IFC4_IfcPresentationLayerWithStyle_type; }
Ifc4::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -16402,14 +16402,14 @@ Ifc4::IfcPresentationStyle::IfcPresentationStyle(IfcEntityInstanceData* e) : Ifc
Ifc4::IfcPresentationStyle::IfcPresentationStyle(boost::optional< std::string > v1_Name) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcPresentationStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } }
// Function implementations for IfcPresentationStyleAssignment
-aggregate_of_instance::ptr Ifc4::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4::IfcPresentationStyleAssignment::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4::IfcPresentationStyleSelect >::ptr Ifc4::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4::IfcPresentationStyleSelect >(); }
+void Ifc4::IfcPresentationStyleAssignment::setStyles(aggregate_of< ::Ifc4::IfcPresentationStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4::IfcPresentationStyleAssignment::declaration() const { return *IFC4_IfcPresentationStyleAssignment_type; }
const IfcParse::entity& Ifc4::IfcPresentationStyleAssignment::Class() { return *IFC4_IfcPresentationStyleAssignment_type; }
Ifc4::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4_IfcPresentationStyleAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of_instance::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles));data_->setArgument(0,attr);} }
+Ifc4::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of< ::Ifc4::IfcPresentationStyleSelect >::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcProcedure
boost::optional< ::Ifc4::IfcProcedureTypeEnum::Value > Ifc4::IfcProcedure::PredefinedType() const { if(!data_->getArgument(7) || data_->getArgument(7)->isNull()) { return boost::none; } return ::Ifc4::IfcProcedureTypeEnum::FromString(*data_->getArgument(7)); }
@@ -16629,8 +16629,8 @@ Ifc4::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(IfcEn
Ifc4::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcProperty* v3_DependingProperty, ::Ifc4::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > Ifc4::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4::IfcValue >(); }
+void Ifc4::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4::IfcPropertyEnumeration* Ifc4::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4::IfcPropertyEnumeration>(true); }
void Ifc4::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -16638,13 +16638,13 @@ void Ifc4::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4::IfcProper
const IfcParse::entity& Ifc4::IfcPropertyEnumeratedValue::declaration() const { return *IFC4_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4::IfcPropertyEnumeratedValue::Class() { return *IFC4_IfcPropertyEnumeratedValue_type; }
Ifc4::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4::IfcValue >::ptr Ifc4::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4::IfcValue >(); }
+void Ifc4::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4::IfcUnit* Ifc4::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4::IfcUnit>(true); }
void Ifc4::IfcPropertyEnumeration::setUnit(::Ifc4::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -16652,11 +16652,11 @@ void Ifc4::IfcPropertyEnumeration::setUnit(::Ifc4::IfcUnit* v) { {IfcWrite::IfcW
const IfcParse::entity& Ifc4::IfcPropertyEnumeration::declaration() const { return *IFC4_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4::IfcPropertyEnumeration::Class() { return *IFC4_IfcPropertyEnumeration_type; }
Ifc4::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4::IfcValue >::ptr v2_EnumerationValues, ::Ifc4::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > Ifc4::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4::IfcValue >(); }
+void Ifc4::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4::IfcUnit* Ifc4::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4::IfcUnit>(true); }
void Ifc4::IfcPropertyListValue::setUnit(::Ifc4::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -16664,7 +16664,7 @@ void Ifc4::IfcPropertyListValue::setUnit(::Ifc4::IfcUnit* v) { {IfcWrite::IfcWri
const IfcParse::entity& Ifc4::IfcPropertyListValue::declaration() const { return *IFC4_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4::IfcPropertyListValue::Class() { return *IFC4_IfcPropertyListValue_type; }
Ifc4::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v3_ListValues, ::Ifc4::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -16727,10 +16727,10 @@ Ifc4::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData* e) :
Ifc4::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcValue* v3_NominalValue, ::Ifc4::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > Ifc4::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4::IfcValue >(); }
+void Ifc4::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > Ifc4::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4::IfcValue >(); }
+void Ifc4::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4::IfcUnit* Ifc4::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4::IfcUnit>(true); }
@@ -16744,7 +16744,7 @@ void Ifc4::IfcPropertyTableValue::setCurveInterpolation(boost::optional< ::Ifc4:
const IfcParse::entity& Ifc4::IfcPropertyTableValue::declaration() const { return *IFC4_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4::IfcPropertyTableValue::Class() { return *IFC4_IfcPropertyTableValue_type; }
Ifc4::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4::IfcUnit* v6_DefiningUnit, ::Ifc4::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4::IfcUnit* v6_DefiningUnit, ::Ifc4::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -17175,14 +17175,14 @@ boost::optional< ::Ifc4::IfcReinforcingBarSurfaceEnum::Value > Ifc4::IfcReinforc
void Ifc4::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > Ifc4::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4::IfcBendingParameterSelect >(); }
+void Ifc4::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4::IfcReinforcingBarType::declaration() const { return *IFC4_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4::IfcReinforcingBarType::Class() { return *IFC4_IfcReinforcingBarType_type; }
Ifc4::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -17249,14 +17249,14 @@ boost::optional< double > Ifc4::IfcReinforcingMeshType::TransverseBarSpacing() c
void Ifc4::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > Ifc4::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4::IfcBendingParameterSelect >(); }
+void Ifc4::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4::IfcReinforcingMeshType::declaration() const { return *IFC4_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4::IfcReinforcingMeshType::Class() { return *IFC4_IfcReinforcingMeshType_type; }
Ifc4::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAggregates
::Ifc4::IfcObjectDefinition* Ifc4::IfcRelAggregates::RelatingObject() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4::IfcObjectDefinition>(true); }
@@ -17357,14 +17357,14 @@ Ifc4::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceData* e)
Ifc4::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v6_RelatedObjectsType,::Ifc4::IfcObjectTypeEnum::ToString(*v6_RelatedObjectsType))));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr Ifc4::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4::IfcDefinitionSelect >(); }
+void Ifc4::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4::IfcRelAssociates::declaration() const { return *IFC4_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4::IfcRelAssociates::Class() { return *IFC4_IfcRelAssociates_type; }
Ifc4::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4::IfcApproval* Ifc4::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4::IfcApproval>(true); }
@@ -17374,7 +17374,7 @@ void Ifc4::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4::IfcApproval* v)
const IfcParse::entity& Ifc4::IfcRelAssociatesApproval::declaration() const { return *IFC4_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4::IfcRelAssociatesApproval::Class() { return *IFC4_IfcRelAssociatesApproval_type; }
Ifc4::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4::IfcClassificationSelect* Ifc4::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4::IfcClassificationSelect>(true); }
@@ -17384,7 +17384,7 @@ void Ifc4::IfcRelAssociatesClassification::setRelatingClassification(::Ifc4::Ifc
const IfcParse::entity& Ifc4::IfcRelAssociatesClassification::declaration() const { return *IFC4_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4::IfcRelAssociatesClassification::Class() { return *IFC4_IfcRelAssociatesClassification_type; }
Ifc4::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -17396,7 +17396,7 @@ void Ifc4::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4::IfcConstrai
const IfcParse::entity& Ifc4::IfcRelAssociatesConstraint::declaration() const { return *IFC4_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4::IfcRelAssociatesConstraint::Class() { return *IFC4_IfcRelAssociatesConstraint_type; }
Ifc4::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4::IfcDocumentSelect* Ifc4::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4::IfcDocumentSelect>(true); }
@@ -17406,7 +17406,7 @@ void Ifc4::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4::IfcDocumentSele
const IfcParse::entity& Ifc4::IfcRelAssociatesDocument::declaration() const { return *IFC4_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4::IfcRelAssociatesDocument::Class() { return *IFC4_IfcRelAssociatesDocument_type; }
Ifc4::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4::IfcLibrarySelect* Ifc4::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4::IfcLibrarySelect>(true); }
@@ -17416,7 +17416,7 @@ void Ifc4::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4::IfcLibrarySelect*
const IfcParse::entity& Ifc4::IfcRelAssociatesLibrary::declaration() const { return *IFC4_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4::IfcRelAssociatesLibrary::Class() { return *IFC4_IfcRelAssociatesLibrary_type; }
Ifc4::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4::IfcMaterialSelect* Ifc4::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4::IfcMaterialSelect>(true); }
@@ -17426,7 +17426,7 @@ void Ifc4::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4::IfcMaterialSele
const IfcParse::entity& Ifc4::IfcRelAssociatesMaterial::declaration() const { return *IFC4_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4::IfcRelAssociatesMaterial::Class() { return *IFC4_IfcRelAssociatesMaterial_type; }
Ifc4::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -17585,14 +17585,14 @@ Ifc4::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::Ifc4::If
// Function implementations for IfcRelDeclares
::Ifc4::IfcContext* Ifc4::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4::IfcContext>(true); }
void Ifc4::IfcRelDeclares::setRelatingContext(::Ifc4::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr Ifc4::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4::IfcDefinitionSelect >(); }
+void Ifc4::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4::IfcRelDeclares::declaration() const { return *IFC4_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4::IfcRelDeclares::Class() { return *IFC4_IfcRelDeclares_type; }
Ifc4::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -17906,8 +17906,8 @@ Ifc4::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((IfcEntityI
Ifc4::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr Ifc4::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4::IfcResourceObjectSelect >(); }
+void Ifc4::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4::IfcApproval* Ifc4::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4::IfcApproval>(true); }
void Ifc4::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -17915,19 +17915,19 @@ void Ifc4::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4::IfcAppro
const IfcParse::entity& Ifc4::IfcResourceApprovalRelationship::declaration() const { return *IFC4_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4::IfcResourceApprovalRelationship::Class() { return *IFC4_IfcResourceApprovalRelationship_type; }
Ifc4::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4::IfcConstraint* Ifc4::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4::IfcConstraint>(true); }
void Ifc4::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr Ifc4::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4::IfcResourceObjectSelect >(); }
+void Ifc4::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4::IfcResourceConstraintRelationship::declaration() const { return *IFC4_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4::IfcResourceConstraintRelationship::Class() { return *IFC4_IfcResourceConstraintRelationship_type; }
Ifc4::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -18249,14 +18249,14 @@ Ifc4::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData* e) :
Ifc4::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4::IfcShell >::ptr Ifc4::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4::IfcShell >(); }
+void Ifc4::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4::IfcShellBasedSurfaceModel::declaration() const { return *IFC4_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4::IfcShellBasedSurfaceModel::Class() { return *IFC4_IfcShellBasedSurfaceModel_type; }
Ifc4::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSimpleProperty
@@ -19017,8 +19017,8 @@ Ifc4::IfcStyleModel::IfcStyleModel(::Ifc4::IfcRepresentationContext* v1_ContextO
// Function implementations for IfcStyledItem
::Ifc4::IfcRepresentationItem* Ifc4::IfcStyledItem::Item() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4::IfcRepresentationItem>(true); }
void Ifc4::IfcStyledItem::setItem(::Ifc4::IfcRepresentationItem* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcStyledItem::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4::IfcStyledItem::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4::IfcStyleAssignmentSelect >::ptr Ifc4::IfcStyledItem::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4::IfcStyleAssignmentSelect >(); }
+void Ifc4::IfcStyledItem::setStyles(aggregate_of< ::Ifc4::IfcStyleAssignmentSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< std::string > Ifc4::IfcStyledItem::Name() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
void Ifc4::IfcStyledItem::setName(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -19026,7 +19026,7 @@ void Ifc4::IfcStyledItem::setName(boost::optional< std::string > v) { {IfcWrite:
const IfcParse::entity& Ifc4::IfcStyledItem::declaration() const { return *IFC4_IfcStyledItem_type; }
const IfcParse::entity& Ifc4::IfcStyledItem::Class() { return *IFC4_IfcStyledItem_type; }
Ifc4::IfcStyledItem::IfcStyledItem(IfcEntityInstanceData* e) : IfcRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcStyledItem_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcStyledItem::IfcStyledItem(::Ifc4::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4::IfcStyledItem::IfcStyledItem(::Ifc4::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles)->generalize());data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcStyledRepresentation
@@ -19153,14 +19153,14 @@ Ifc4::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::optional<
// Function implementations for IfcSurfaceStyle
::Ifc4::IfcSurfaceSide::Value Ifc4::IfcSurfaceStyle::Side() const { return ::Ifc4::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4::IfcSurfaceStyle::setSide(::Ifc4::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4::IfcSurfaceStyleElementSelect >::ptr Ifc4::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4::IfcSurfaceStyleElementSelect >(); }
+void Ifc4::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4::IfcSurfaceStyle::declaration() const { return *IFC4_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4::IfcSurfaceStyle::Class() { return *IFC4_IfcSurfaceStyle_type; }
Ifc4::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4::IfcColourRgb* Ifc4::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4::IfcColourRgb>(true); }
@@ -19414,8 +19414,8 @@ Ifc4::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil::IfcBas
Ifc4::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4::IfcUnit* v4_Unit, ::Ifc4::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > Ifc4::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4::IfcValue >(); }
+void Ifc4::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -19423,7 +19423,7 @@ void Ifc4::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::Ifc
const IfcParse::entity& Ifc4::IfcTableRow::declaration() const { return *IFC4_IfcTableRow_type; }
const IfcParse::entity& Ifc4::IfcTableRow::Class() { return *IFC4_IfcTableRow_type; }
Ifc4::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4::IfcTankTypeEnum::Value > Ifc4::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -19815,14 +19815,14 @@ Ifc4::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::IfcBaseE
Ifc4::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4::IfcValue >::ptr Ifc4::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4::IfcValue >(); }
+void Ifc4::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4::IfcTimeSeriesValue::declaration() const { return *IFC4_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4::IfcTimeSeriesValue::Class() { return *IFC4_IfcTimeSeriesValue_type; }
Ifc4::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -19927,10 +19927,10 @@ Ifc4::IfcTriangulatedFaceSet::IfcTriangulatedFaceSet(::Ifc4::IfcCartesianPointLi
// Function implementations for IfcTrimmedCurve
::Ifc4::IfcCurve* Ifc4::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4::IfcCurve>(true); }
void Ifc4::IfcTrimmedCurve::setBasisCurve(::Ifc4::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr Ifc4::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4::IfcTrimmingSelect >(); }
+void Ifc4::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr Ifc4::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4::IfcTrimmingSelect >(); }
+void Ifc4::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4::IfcTrimmingPreference::Value Ifc4::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -19940,7 +19940,7 @@ void Ifc4::IfcTrimmedCurve::setMasterRepresentation(::Ifc4::IfcTrimmingPreferenc
const IfcParse::entity& Ifc4::IfcTrimmedCurve::declaration() const { return *IFC4_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4::IfcTrimmedCurve::Class() { return *IFC4_IfcTrimmedCurve_type; }
Ifc4::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4::IfcTubeBundleTypeEnum::Value > Ifc4::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -20041,14 +20041,14 @@ Ifc4::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) : IfcPa
Ifc4::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4::IfcUnit >::ptr Ifc4::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4::IfcUnit >(); }
+void Ifc4::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4::IfcUnitAssignment::declaration() const { return *IFC4_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4::IfcUnitAssignment::Class() { return *IFC4_IfcUnitAssignment_type; }
Ifc4::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4::IfcUnitaryControlElementTypeEnum::Value > Ifc4::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4.h b/src/ifcparse/Ifc4.h
index 8b80139d29..7456d69988 100644
--- a/src/ifcparse/Ifc4.h
+++ b/src/ifcparse/Ifc4.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,11 +201,13 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -207,6 +220,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -216,6 +230,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -227,6 +242,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -305,6 +321,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -317,6 +334,7 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -327,6 +345,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -336,6 +355,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -348,6 +368,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -355,6 +376,7 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -366,6 +388,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -380,6 +403,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -406,6 +430,7 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -436,6 +461,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -449,6 +475,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -465,6 +492,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -472,6 +500,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -479,6 +508,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -486,6 +516,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -493,6 +524,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -504,6 +536,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// Definition from ISO/CD 10303-46:1992: The presentation style select is a selection of one of many kinds of styles, a different one for each kind of geometric representation item to be styled.
///
@@ -516,6 +549,7 @@ public:
class IFC_PARSE_API IfcPresentationStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPresentationStyleSelect > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -530,11 +564,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -548,11 +584,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -560,6 +598,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -573,6 +612,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -580,11 +620,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -600,6 +642,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -623,6 +666,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -639,6 +683,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -650,6 +695,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -666,6 +712,7 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -680,6 +727,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -693,6 +741,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// The style assignment select is a selection of two wasy of assigning presentation styles to an IfcStyledItem.
///
@@ -707,6 +756,7 @@ public:
class IFC_PARSE_API IfcStyleAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStyleAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -720,6 +770,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -733,6 +784,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -744,12 +796,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -757,6 +811,7 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -766,6 +821,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -783,6 +839,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -797,6 +854,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -809,6 +867,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -816,6 +875,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -10468,12 +10528,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -10647,15 +10707,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -11445,15 +11505,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -11490,7 +11550,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -11517,12 +11577,12 @@ public:
class IFC_PARSE_API IfcPresentationStyleAssignment : public IfcUtil::IfcBaseEntity, public IfcStyleAssignmentSelect {
public:
/// A set of presentation styles that are assigned to styled items.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcPresentationStyleSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4::IfcPresentationStyleSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationStyleAssignment (IfcEntityInstanceData* e);
- IfcPresentationStyleAssignment (aggregate_of_instance::ptr v1_Styles);
+ IfcPresentationStyleAssignment (aggregate_of< ::Ifc4::IfcPresentationStyleSelect >::ptr v1_Styles);
typedef aggregate_of< IfcPresentationStyleAssignment > list;
};
/// IfcProductRepresentation defines a representation of a
@@ -11854,15 +11914,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4::IfcUnit* Unit() const;
void setUnit(::Ifc4::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4::IfcValue >::ptr v2_EnumerationValues, ::Ifc4::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -12711,15 +12771,15 @@ public:
/// for file based exchange.
///
/// NOTE Only the select item IfcPresentationStyle shall be used from IFC2x4 onwards, the IfcPresentationStyleAssignment has been deprecated.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcStyleAssignmentSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4::IfcStyleAssignmentSelect >::ptr v);
/// The word, or group of words, by which the styled item is referred to.
boost::optional< std::string > Name() const;
void setName(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcStyledItem (IfcEntityInstanceData* e);
- IfcStyledItem (::Ifc4::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name);
+ IfcStyledItem (::Ifc4::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name);
typedef aggregate_of< IfcStyledItem > list;
};
/// The IfcStyledRepresentation represents the concept of a styled presentation being a representation of a product or a product component, like material. within a representation context. This representation context does not need to be (but may be) a geometric representation context.
@@ -12772,12 +12832,12 @@ public:
::Ifc4::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13086,15 +13146,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -13643,12 +13703,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -13714,12 +13774,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -14695,8 +14755,8 @@ public:
::Ifc4::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -14737,7 +14797,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -14978,12 +15038,12 @@ public:
::Ifc4::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15194,14 +15254,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle, public IfcPresentationStyleSelect {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelorDraughting() const;
void setModelorDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -15355,12 +15415,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -17327,15 +17387,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -17364,12 +17424,12 @@ public:
::Ifc4::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -17614,12 +17674,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -20587,7 +20647,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -21685,15 +21745,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -21766,15 +21826,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4::IfcUnit* Unit() const;
void setUnit(::Ifc4::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v3_ListValues, ::Ifc4::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22114,13 +22174,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22138,7 +22198,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4::IfcUnit* v6_DefiningUnit, ::Ifc4::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4::IfcUnit* v6_DefiningUnit, ::Ifc4::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -22664,12 +22724,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -22683,7 +22743,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -22724,7 +22784,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -22741,7 +22801,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -22759,7 +22819,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -22777,7 +22837,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -22882,7 +22942,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -23355,12 +23415,12 @@ public:
::Ifc4::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -30581,14 +30641,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4::IfcSegmentIndexSelect >::ptr > v);
boost::optional< bool > SelfIntersect() const;
void setSelfIntersect(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -32571,12 +32631,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
/// The aggregation relationship
@@ -34751,11 +34811,11 @@ public:
::Ifc4::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -34765,7 +34825,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -43524,12 +43584,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/Ifc4x1-definitions.h b/src/ifcparse/Ifc4x1-definitions.h
index 244a3c4cc9..c2270a31d3 100644
--- a/src/ifcparse/Ifc4x1-definitions.h
+++ b/src/ifcparse/Ifc4x1-definitions.h
@@ -3763,3 +3763,52 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectObjectAssignment
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSiUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4x1.cpp b/src/ifcparse/Ifc4x1.cpp
index 6799e2678f..12ec0ff440 100644
--- a/src/ifcparse/Ifc4x1.cpp
+++ b/src/ifcparse/Ifc4x1.cpp
@@ -13651,8 +13651,8 @@ boost::optional< std::string > Ifc4x1::IfcDocumentInformation::Revision() const
void Ifc4x1::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4x1::IfcActorSelect* Ifc4x1::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4x1::IfcActorSelect>(true); }
void Ifc4x1::IfcDocumentInformation::setDocumentOwner(::Ifc4x1::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x1::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4x1::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4x1::IfcActorSelect >::ptr > Ifc4x1::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4x1::IfcActorSelect >(); }
+void Ifc4x1::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4x1::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4x1::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4x1::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4x1::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -13676,7 +13676,7 @@ void Ifc4x1::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4x1::IfcDoc
const IfcParse::entity& Ifc4x1::IfcDocumentInformation::declaration() const { return *IFC4X1_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4x1::IfcDocumentInformation::Class() { return *IFC4X1_IfcDocumentInformation_type; }
Ifc4x1::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x1::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x1::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x1::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4x1::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x1::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x1::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x1::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x1::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4x1::IfcDocumentInformation* Ifc4x1::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x1::IfcDocumentInformation>(true); }
@@ -14323,14 +14323,14 @@ Ifc4x1::IfcExternalReference::IfcExternalReference(boost::optional< std::string
// Function implementations for IfcExternalReferenceRelationship
::Ifc4x1::IfcExternalReference* Ifc4x1::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x1::IfcExternalReference>(true); }
void Ifc4x1::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4x1::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x1::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr Ifc4x1::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x1::IfcResourceObjectSelect >(); }
+void Ifc4x1::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x1::IfcExternalReferenceRelationship::declaration() const { return *IFC4X1_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4x1::IfcExternalReferenceRelationship::Class() { return *IFC4X1_IfcExternalReferenceRelationship_type; }
Ifc4x1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4x1::IfcExternalSpatialElementTypeEnum::Value > Ifc4x1::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x1::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -14555,8 +14555,8 @@ Ifc4x1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntityInst
Ifc4x1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x1::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x1::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4x1::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x1::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x1::IfcFillStyleSelect >::ptr Ifc4x1::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x1::IfcFillStyleSelect >(); }
+void Ifc4x1::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4x1::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x1::IfcFillAreaStyle::ModelorDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x1::IfcFillAreaStyle::setModelorDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -14564,7 +14564,7 @@ void Ifc4x1::IfcFillAreaStyle::setModelorDraughting(boost::optional< bool > v) {
const IfcParse::entity& Ifc4x1::IfcFillAreaStyle::declaration() const { return *IFC4X1_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4x1::IfcFillAreaStyle::Class() { return *IFC4X1_IfcFillAreaStyle_type; }
Ifc4x1::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelorDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelorDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x1::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x1::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelorDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelorDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4x1::IfcCurveStyle* Ifc4x1::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x1::IfcCurveStyle>(true); }
@@ -14890,7 +14890,7 @@ Ifc4x1::IfcGeographicElementType::IfcGeographicElementType(std::string v1_Global
const IfcParse::entity& Ifc4x1::IfcGeometricCurveSet::declaration() const { return *IFC4X1_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4x1::IfcGeometricCurveSet::Class() { return *IFC4X1_IfcGeometricCurveSet_type; }
Ifc4x1::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x1::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4x1::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4x1::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -14935,14 +14935,14 @@ Ifc4x1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubConte
Ifc4x1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4x1::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4x1::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4x1::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4x1::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x1::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x1::IfcGeometricSetSelect >::ptr Ifc4x1::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x1::IfcGeometricSetSelect >(); }
+void Ifc4x1::IfcGeometricSet::setElements(aggregate_of< ::Ifc4x1::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x1::IfcGeometricSet::declaration() const { return *IFC4X1_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4x1::IfcGeometricSet::Class() { return *IFC4X1_IfcGeometricSet_type; }
Ifc4x1::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x1::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4x1::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGrid
aggregate_of< ::Ifc4x1::IfcGridAxis >::ptr Ifc4x1::IfcGrid::UAxes() const { aggregate_of_instance::ptr es = *data_->getArgument(7); return es->as< ::Ifc4x1::IfcGridAxis >(); }
@@ -15102,8 +15102,8 @@ Ifc4x1::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x1::IfcTessellatedFaceSet
// Function implementations for IfcIndexedPolyCurve
::Ifc4x1::IfcCartesianPointList* Ifc4x1::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x1::IfcCartesianPointList>(true); }
void Ifc4x1::IfcIndexedPolyCurve::setPoints(::Ifc4x1::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x1::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x1::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4x1::IfcSegmentIndexSelect >::ptr > Ifc4x1::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x1::IfcSegmentIndexSelect >(); }
+void Ifc4x1::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4x1::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x1::IfcIndexedPolyCurve::SelfIntersect() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x1::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -15111,7 +15111,7 @@ void Ifc4x1::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) {
const IfcParse::entity& Ifc4x1::IfcIndexedPolyCurve::declaration() const { return *IFC4X1_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4x1::IfcIndexedPolyCurve::Class() { return *IFC4X1_IfcIndexedPolyCurve_type; }
Ifc4x1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x1::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4x1::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -15217,14 +15217,14 @@ Ifc4x1::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name, boos
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4x1::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x1::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x1::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x1::IfcValue >::ptr Ifc4x1::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x1::IfcValue >(); }
+void Ifc4x1::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4x1::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4X1_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x1::IfcIrregularTimeSeriesValue::Class() { return *IFC4X1_IfcIrregularTimeSeriesValue_type; }
Ifc4x1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X1_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4x1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4x1::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4x1::IfcJunctionBoxTypeEnum::Value > Ifc4x1::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x1::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -15615,8 +15615,8 @@ Ifc4x1::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDefiniti
Ifc4x1::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4x1::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x1::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x1::IfcClassificationSelect >::ptr Ifc4x1::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x1::IfcClassificationSelect >(); }
+void Ifc4x1::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4x1::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4x1::IfcMaterial* Ifc4x1::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4x1::IfcMaterial>(true); }
void Ifc4x1::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4x1::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -15624,7 +15624,7 @@ void Ifc4x1::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4
const IfcParse::entity& Ifc4x1::IfcMaterialClassificationRelationship::declaration() const { return *IFC4X1_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4x1::IfcMaterialClassificationRelationship::Class() { return *IFC4X1_IfcMaterialClassificationRelationship_type; }
Ifc4x1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X1_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x1::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4x1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4x1::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x1::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4x1::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -16752,8 +16752,8 @@ std::string Ifc4x1::IfcPresentationLayerAssignment::Name() const { std::string
void Ifc4x1::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4x1::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4x1::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x1::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x1::IfcLayeredItem >::ptr Ifc4x1::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x1::IfcLayeredItem >(); }
+void Ifc4x1::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4x1::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4x1::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4x1::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -16761,7 +16761,7 @@ void Ifc4x1::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std:
const IfcParse::entity& Ifc4x1::IfcPresentationLayerAssignment::declaration() const { return *IFC4X1_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4x1::IfcPresentationLayerAssignment::Class() { return *IFC4X1_IfcPresentationLayerAssignment_type; }
Ifc4x1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X1_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4x1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4x1::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -16777,7 +16777,7 @@ void Ifc4x1::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::Ifc4x
const IfcParse::entity& Ifc4x1::IfcPresentationLayerWithStyle::declaration() const { return *IFC4X1_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4x1::IfcPresentationLayerWithStyle::Class() { return *IFC4X1_IfcPresentationLayerWithStyle_type; }
Ifc4x1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x1::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4x1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x1::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4x1::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -16790,14 +16790,14 @@ Ifc4x1::IfcPresentationStyle::IfcPresentationStyle(IfcEntityInstanceData* e) : I
Ifc4x1::IfcPresentationStyle::IfcPresentationStyle(boost::optional< std::string > v1_Name) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcPresentationStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } }
// Function implementations for IfcPresentationStyleAssignment
-aggregate_of_instance::ptr Ifc4x1::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x1::IfcPresentationStyleAssignment::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x1::IfcPresentationStyleSelect >::ptr Ifc4x1::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x1::IfcPresentationStyleSelect >(); }
+void Ifc4x1::IfcPresentationStyleAssignment::setStyles(aggregate_of< ::Ifc4x1::IfcPresentationStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x1::IfcPresentationStyleAssignment::declaration() const { return *IFC4X1_IfcPresentationStyleAssignment_type; }
const IfcParse::entity& Ifc4x1::IfcPresentationStyleAssignment::Class() { return *IFC4X1_IfcPresentationStyleAssignment_type; }
Ifc4x1::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X1_IfcPresentationStyleAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of_instance::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles));data_->setArgument(0,attr);} }
+Ifc4x1::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of< ::Ifc4x1::IfcPresentationStyleSelect >::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcProcedure
boost::optional< ::Ifc4x1::IfcProcedureTypeEnum::Value > Ifc4x1::IfcProcedure::PredefinedType() const { if(!data_->getArgument(7) || data_->getArgument(7)->isNull()) { return boost::none; } return ::Ifc4x1::IfcProcedureTypeEnum::FromString(*data_->getArgument(7)); }
@@ -17017,8 +17017,8 @@ Ifc4x1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(Ifc
Ifc4x1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcProperty* v3_DependingProperty, ::Ifc4x1::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x1::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x1::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > Ifc4x1::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x1::IfcValue >(); }
+void Ifc4x1::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x1::IfcPropertyEnumeration* Ifc4x1::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x1::IfcPropertyEnumeration>(true); }
void Ifc4x1::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x1::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -17026,13 +17026,13 @@ void Ifc4x1::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x1::IfcPr
const IfcParse::entity& Ifc4x1::IfcPropertyEnumeratedValue::declaration() const { return *IFC4X1_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4x1::IfcPropertyEnumeratedValue::Class() { return *IFC4X1_IfcPropertyEnumeratedValue_type; }
Ifc4x1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x1::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4x1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x1::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4x1::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x1::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x1::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x1::IfcValue >::ptr Ifc4x1::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x1::IfcValue >(); }
+void Ifc4x1::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4x1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4x1::IfcUnit* Ifc4x1::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x1::IfcUnit>(true); }
void Ifc4x1::IfcPropertyEnumeration::setUnit(::Ifc4x1::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -17040,11 +17040,11 @@ void Ifc4x1::IfcPropertyEnumeration::setUnit(::Ifc4x1::IfcUnit* v) { {IfcWrite::
const IfcParse::entity& Ifc4x1::IfcPropertyEnumeration::declaration() const { return *IFC4X1_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4x1::IfcPropertyEnumeration::Class() { return *IFC4X1_IfcPropertyEnumeration_type; }
Ifc4x1::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x1::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4x1::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4x1::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x1::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x1::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x1::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > Ifc4x1::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x1::IfcValue >(); }
+void Ifc4x1::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x1::IfcUnit* Ifc4x1::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x1::IfcUnit>(true); }
void Ifc4x1::IfcPropertyListValue::setUnit(::Ifc4x1::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -17052,7 +17052,7 @@ void Ifc4x1::IfcPropertyListValue::setUnit(::Ifc4x1::IfcUnit* v) { {IfcWrite::If
const IfcParse::entity& Ifc4x1::IfcPropertyListValue::declaration() const { return *IFC4X1_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4x1::IfcPropertyListValue::Class() { return *IFC4X1_IfcPropertyListValue_type; }
Ifc4x1::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4x1::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v3_ListValues, ::Ifc4x1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4x1::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -17115,10 +17115,10 @@ Ifc4x1::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData* e)
Ifc4x1::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcValue* v3_NominalValue, ::Ifc4x1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x1::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x1::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x1::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x1::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > Ifc4x1::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x1::IfcValue >(); }
+void Ifc4x1::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > Ifc4x1::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x1::IfcValue >(); }
+void Ifc4x1::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4x1::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4x1::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4x1::IfcUnit* Ifc4x1::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x1::IfcUnit>(true); }
@@ -17132,7 +17132,7 @@ void Ifc4x1::IfcPropertyTableValue::setCurveInterpolation(boost::optional< ::Ifc
const IfcParse::entity& Ifc4x1::IfcPropertyTableValue::declaration() const { return *IFC4X1_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4x1::IfcPropertyTableValue::Class() { return *IFC4X1_IfcPropertyTableValue_type; }
Ifc4x1::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x1::IfcUnit* v6_DefiningUnit, ::Ifc4x1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x1::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4x1::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x1::IfcUnit* v6_DefiningUnit, ::Ifc4x1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x1::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -17575,14 +17575,14 @@ boost::optional< ::Ifc4x1::IfcReinforcingBarSurfaceEnum::Value > Ifc4x1::IfcRein
void Ifc4x1::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4x1::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4x1::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4x1::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4x1::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x1::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4x1::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > Ifc4x1::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4x1::IfcBendingParameterSelect >(); }
+void Ifc4x1::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4x1::IfcReinforcingBarType::declaration() const { return *IFC4X1_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4x1::IfcReinforcingBarType::Class() { return *IFC4X1_IfcReinforcingBarType_type; }
Ifc4x1::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x1::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x1::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4x1::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x1::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x1::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4x1::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -17649,14 +17649,14 @@ boost::optional< double > Ifc4x1::IfcReinforcingMeshType::TransverseBarSpacing()
void Ifc4x1::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4x1::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4x1::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x1::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4x1::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > Ifc4x1::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4x1::IfcBendingParameterSelect >(); }
+void Ifc4x1::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4x1::IfcReinforcingMeshType::declaration() const { return *IFC4X1_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4x1::IfcReinforcingMeshType::Class() { return *IFC4X1_IfcReinforcingMeshType_type; }
Ifc4x1::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x1::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4x1::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x1::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAggregates
::Ifc4x1::IfcObjectDefinition* Ifc4x1::IfcRelAggregates::RelatingObject() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x1::IfcObjectDefinition>(true); }
@@ -17757,14 +17757,14 @@ Ifc4x1::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceData*
Ifc4x1::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4x1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x1::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v6_RelatedObjectsType,::Ifc4x1::IfcObjectTypeEnum::ToString(*v6_RelatedObjectsType))));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4x1::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x1::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr Ifc4x1::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x1::IfcDefinitionSelect >(); }
+void Ifc4x1::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4x1::IfcRelAssociates::declaration() const { return *IFC4X1_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4x1::IfcRelAssociates::Class() { return *IFC4X1_IfcRelAssociates_type; }
Ifc4x1::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4x1::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4x1::IfcApproval* Ifc4x1::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x1::IfcApproval>(true); }
@@ -17774,7 +17774,7 @@ void Ifc4x1::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4x1::IfcApproval
const IfcParse::entity& Ifc4x1::IfcRelAssociatesApproval::declaration() const { return *IFC4X1_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4x1::IfcRelAssociatesApproval::Class() { return *IFC4X1_IfcRelAssociatesApproval_type; }
Ifc4x1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4x1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4x1::IfcClassificationSelect* Ifc4x1::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x1::IfcClassificationSelect>(true); }
@@ -17784,7 +17784,7 @@ void Ifc4x1::IfcRelAssociatesClassification::setRelatingClassification(::Ifc4x1:
const IfcParse::entity& Ifc4x1::IfcRelAssociatesClassification::declaration() const { return *IFC4X1_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4x1::IfcRelAssociatesClassification::Class() { return *IFC4X1_IfcRelAssociatesClassification_type; }
Ifc4x1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4x1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4x1::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -17796,7 +17796,7 @@ void Ifc4x1::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4x1::IfcCons
const IfcParse::entity& Ifc4x1::IfcRelAssociatesConstraint::declaration() const { return *IFC4X1_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4x1::IfcRelAssociatesConstraint::Class() { return *IFC4X1_IfcRelAssociatesConstraint_type; }
Ifc4x1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x1::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4x1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x1::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4x1::IfcDocumentSelect* Ifc4x1::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x1::IfcDocumentSelect>(true); }
@@ -17806,7 +17806,7 @@ void Ifc4x1::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4x1::IfcDocument
const IfcParse::entity& Ifc4x1::IfcRelAssociatesDocument::declaration() const { return *IFC4X1_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4x1::IfcRelAssociatesDocument::Class() { return *IFC4X1_IfcRelAssociatesDocument_type; }
Ifc4x1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4x1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4x1::IfcLibrarySelect* Ifc4x1::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x1::IfcLibrarySelect>(true); }
@@ -17816,7 +17816,7 @@ void Ifc4x1::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4x1::IfcLibrarySel
const IfcParse::entity& Ifc4x1::IfcRelAssociatesLibrary::declaration() const { return *IFC4X1_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4x1::IfcRelAssociatesLibrary::Class() { return *IFC4X1_IfcRelAssociatesLibrary_type; }
Ifc4x1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4x1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4x1::IfcMaterialSelect* Ifc4x1::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x1::IfcMaterialSelect>(true); }
@@ -17826,7 +17826,7 @@ void Ifc4x1::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4x1::IfcMaterial
const IfcParse::entity& Ifc4x1::IfcRelAssociatesMaterial::declaration() const { return *IFC4X1_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4x1::IfcRelAssociatesMaterial::Class() { return *IFC4X1_IfcRelAssociatesMaterial_type; }
Ifc4x1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4x1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -17985,14 +17985,14 @@ Ifc4x1::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::Ifc4x1
// Function implementations for IfcRelDeclares
::Ifc4x1::IfcContext* Ifc4x1::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x1::IfcContext>(true); }
void Ifc4x1::IfcRelDeclares::setRelatingContext(::Ifc4x1::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4x1::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr Ifc4x1::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4x1::IfcDefinitionSelect >(); }
+void Ifc4x1::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4x1::IfcRelDeclares::declaration() const { return *IFC4X1_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4x1::IfcRelDeclares::Class() { return *IFC4X1_IfcRelDeclares_type; }
Ifc4x1::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x1::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4x1::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x1::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -18306,8 +18306,8 @@ Ifc4x1::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((IfcEntit
Ifc4x1::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4x1::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x1::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr Ifc4x1::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x1::IfcResourceObjectSelect >(); }
+void Ifc4x1::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4x1::IfcApproval* Ifc4x1::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x1::IfcApproval>(true); }
void Ifc4x1::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x1::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -18315,19 +18315,19 @@ void Ifc4x1::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x1::IfcA
const IfcParse::entity& Ifc4x1::IfcResourceApprovalRelationship::declaration() const { return *IFC4X1_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4x1::IfcResourceApprovalRelationship::Class() { return *IFC4X1_IfcResourceApprovalRelationship_type; }
Ifc4x1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x1::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4x1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x1::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4x1::IfcConstraint* Ifc4x1::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x1::IfcConstraint>(true); }
void Ifc4x1::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4x1::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x1::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr Ifc4x1::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x1::IfcResourceObjectSelect >(); }
+void Ifc4x1::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x1::IfcResourceConstraintRelationship::declaration() const { return *IFC4X1_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4x1::IfcResourceConstraintRelationship::Class() { return *IFC4X1_IfcResourceConstraintRelationship_type; }
Ifc4x1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4x1::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -18674,14 +18674,14 @@ Ifc4x1::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData* e)
Ifc4x1::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x1::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4x1::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4x1::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x1::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x1::IfcShell >::ptr Ifc4x1::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x1::IfcShell >(); }
+void Ifc4x1::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4x1::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x1::IfcShellBasedSurfaceModel::declaration() const { return *IFC4X1_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4x1::IfcShellBasedSurfaceModel::Class() { return *IFC4X1_IfcShellBasedSurfaceModel_type; }
Ifc4x1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4x1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4x1::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSimpleProperty
@@ -19442,8 +19442,8 @@ Ifc4x1::IfcStyleModel::IfcStyleModel(::Ifc4x1::IfcRepresentationContext* v1_Cont
// Function implementations for IfcStyledItem
::Ifc4x1::IfcRepresentationItem* Ifc4x1::IfcStyledItem::Item() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x1::IfcRepresentationItem>(true); }
void Ifc4x1::IfcStyledItem::setItem(::Ifc4x1::IfcRepresentationItem* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcStyledItem::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x1::IfcStyledItem::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x1::IfcStyleAssignmentSelect >::ptr Ifc4x1::IfcStyledItem::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x1::IfcStyleAssignmentSelect >(); }
+void Ifc4x1::IfcStyledItem::setStyles(aggregate_of< ::Ifc4x1::IfcStyleAssignmentSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< std::string > Ifc4x1::IfcStyledItem::Name() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
void Ifc4x1::IfcStyledItem::setName(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -19451,7 +19451,7 @@ void Ifc4x1::IfcStyledItem::setName(boost::optional< std::string > v) { {IfcWrit
const IfcParse::entity& Ifc4x1::IfcStyledItem::declaration() const { return *IFC4X1_IfcStyledItem_type; }
const IfcParse::entity& Ifc4x1::IfcStyledItem::Class() { return *IFC4X1_IfcStyledItem_type; }
Ifc4x1::IfcStyledItem::IfcStyledItem(IfcEntityInstanceData* e) : IfcRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcStyledItem_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcStyledItem::IfcStyledItem(::Ifc4x1::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x1::IfcStyledItem::IfcStyledItem(::Ifc4x1::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4x1::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles)->generalize());data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcStyledRepresentation
@@ -19578,14 +19578,14 @@ Ifc4x1::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::optional
// Function implementations for IfcSurfaceStyle
::Ifc4x1::IfcSurfaceSide::Value Ifc4x1::IfcSurfaceStyle::Side() const { return ::Ifc4x1::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4x1::IfcSurfaceStyle::setSide(::Ifc4x1::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x1::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x1::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x1::IfcSurfaceStyleElementSelect >::ptr Ifc4x1::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x1::IfcSurfaceStyleElementSelect >(); }
+void Ifc4x1::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4x1::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4x1::IfcSurfaceStyle::declaration() const { return *IFC4X1_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4x1::IfcSurfaceStyle::Class() { return *IFC4X1_IfcSurfaceStyle_type; }
Ifc4x1::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x1::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x1::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4x1::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x1::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x1::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x1::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4x1::IfcColourRgb* Ifc4x1::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x1::IfcColourRgb>(true); }
@@ -19839,8 +19839,8 @@ Ifc4x1::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil::IfcB
Ifc4x1::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4x1::IfcUnit* v4_Unit, ::Ifc4x1::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4x1::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x1::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > Ifc4x1::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x1::IfcValue >(); }
+void Ifc4x1::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4x1::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4x1::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -19848,7 +19848,7 @@ void Ifc4x1::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::I
const IfcParse::entity& Ifc4x1::IfcTableRow::declaration() const { return *IFC4X1_IfcTableRow_type; }
const IfcParse::entity& Ifc4x1::IfcTableRow::Class() { return *IFC4X1_IfcTableRow_type; }
Ifc4x1::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X1_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4x1::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4x1::IfcTankTypeEnum::Value > Ifc4x1::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x1::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -20240,14 +20240,14 @@ Ifc4x1::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::IfcBas
Ifc4x1::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x1::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x1::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x1::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4x1::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4x1::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4x1::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x1::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x1::IfcValue >::ptr Ifc4x1::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x1::IfcValue >(); }
+void Ifc4x1::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x1::IfcTimeSeriesValue::declaration() const { return *IFC4X1_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x1::IfcTimeSeriesValue::Class() { return *IFC4X1_IfcTimeSeriesValue_type; }
Ifc4x1::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X1_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4x1::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4x1::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -20380,10 +20380,10 @@ Ifc4x1::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::Ifc4x
// Function implementations for IfcTrimmedCurve
::Ifc4x1::IfcCurve* Ifc4x1::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x1::IfcCurve>(true); }
void Ifc4x1::IfcTrimmedCurve::setBasisCurve(::Ifc4x1::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x1::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x1::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x1::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr Ifc4x1::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x1::IfcTrimmingSelect >(); }
+void Ifc4x1::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr Ifc4x1::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x1::IfcTrimmingSelect >(); }
+void Ifc4x1::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4x1::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4x1::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4x1::IfcTrimmingPreference::Value Ifc4x1::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x1::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -20393,7 +20393,7 @@ void Ifc4x1::IfcTrimmedCurve::setMasterRepresentation(::Ifc4x1::IfcTrimmingPrefe
const IfcParse::entity& Ifc4x1::IfcTrimmedCurve::declaration() const { return *IFC4X1_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4x1::IfcTrimmedCurve::Class() { return *IFC4X1_IfcTrimmedCurve_type; }
Ifc4x1::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X1_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x1::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x1::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x1::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4x1::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x1::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x1::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x1::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4x1::IfcTubeBundleTypeEnum::Value > Ifc4x1::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x1::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -20494,14 +20494,14 @@ Ifc4x1::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) : Ifc
Ifc4x1::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x1::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4x1::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X1_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4x1::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4x1::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x1::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x1::IfcUnit >::ptr Ifc4x1::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x1::IfcUnit >(); }
+void Ifc4x1::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4x1::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x1::IfcUnitAssignment::declaration() const { return *IFC4X1_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4x1::IfcUnitAssignment::Class() { return *IFC4X1_IfcUnitAssignment_type; }
Ifc4x1::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X1_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x1::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4x1::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4x1::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X1_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4x1::IfcUnitaryControlElementTypeEnum::Value > Ifc4x1::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x1::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4x1.h b/src/ifcparse/Ifc4x1.h
index c2e6ba7490..bbb55dd08d 100644
--- a/src/ifcparse/Ifc4x1.h
+++ b/src/ifcparse/Ifc4x1.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,11 +201,13 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -207,6 +220,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -216,6 +230,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -227,6 +242,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -305,6 +321,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -317,6 +334,7 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -327,6 +345,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -336,6 +355,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -348,6 +368,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -355,6 +376,7 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -366,6 +388,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -380,6 +403,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -406,6 +430,7 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -436,6 +461,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -449,6 +475,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -465,6 +492,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -472,6 +500,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -479,6 +508,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -486,6 +516,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -493,6 +524,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -504,6 +536,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// Definition from ISO/CD 10303-46:1992: The presentation style select is a selection of one of many kinds of styles, a different one for each kind of geometric representation item to be styled.
///
@@ -516,6 +549,7 @@ public:
class IFC_PARSE_API IfcPresentationStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPresentationStyleSelect > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -530,11 +564,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -548,11 +584,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -560,6 +598,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -573,6 +612,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -580,11 +620,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -600,6 +642,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -623,6 +666,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -639,6 +683,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -650,6 +695,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -666,6 +712,7 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -680,6 +727,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -693,6 +741,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// The style assignment select is a selection of two wasy of assigning presentation styles to an IfcStyledItem.
///
@@ -707,6 +756,7 @@ public:
class IFC_PARSE_API IfcStyleAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStyleAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -720,6 +770,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -733,6 +784,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -744,12 +796,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -757,6 +811,7 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -766,6 +821,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -783,6 +839,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -797,6 +854,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -809,6 +867,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -816,6 +875,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -10510,12 +10570,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x1::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4x1::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -10689,15 +10749,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4x1::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4x1::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4x1::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x1::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4x1::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x1::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -11487,15 +11547,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4x1::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -11532,7 +11592,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x1::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x1::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -11559,12 +11619,12 @@ public:
class IFC_PARSE_API IfcPresentationStyleAssignment : public IfcUtil::IfcBaseEntity, public IfcStyleAssignmentSelect {
public:
/// A set of presentation styles that are assigned to styled items.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcPresentationStyleSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x1::IfcPresentationStyleSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationStyleAssignment (IfcEntityInstanceData* e);
- IfcPresentationStyleAssignment (aggregate_of_instance::ptr v1_Styles);
+ IfcPresentationStyleAssignment (aggregate_of< ::Ifc4x1::IfcPresentationStyleSelect >::ptr v1_Styles);
typedef aggregate_of< IfcPresentationStyleAssignment > list;
};
/// IfcProductRepresentation defines a representation of a
@@ -11896,15 +11956,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4x1::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x1::IfcUnit* Unit() const;
void setUnit(::Ifc4x1::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x1::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4x1::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x1::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -12754,15 +12814,15 @@ public:
/// for file based exchange.
///
/// NOTE Only the select item IfcPresentationStyle shall be used from IFC2x4 onwards, the IfcPresentationStyleAssignment has been deprecated.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcStyleAssignmentSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x1::IfcStyleAssignmentSelect >::ptr v);
/// The word, or group of words, by which the styled item is referred to.
boost::optional< std::string > Name() const;
void setName(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcStyledItem (IfcEntityInstanceData* e);
- IfcStyledItem (::Ifc4x1::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name);
+ IfcStyledItem (::Ifc4x1::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4x1::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name);
typedef aggregate_of< IfcStyledItem > list;
};
/// The IfcStyledRepresentation represents the concept of a styled presentation being a representation of a product or a product component, like material. within a representation context. This representation context does not need to be (but may be) a geometric representation context.
@@ -12815,12 +12875,12 @@ public:
::Ifc4x1::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4x1::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x1::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x1::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x1::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x1::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13129,15 +13189,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -13686,12 +13746,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x1::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4x1::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -13757,12 +13817,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4x1::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4x1::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -14738,8 +14798,8 @@ public:
::Ifc4x1::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4x1::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x1::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4x1::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -14780,7 +14840,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x1::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x1::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x1::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -15021,12 +15081,12 @@ public:
::Ifc4x1::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4x1::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15237,14 +15297,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle, public IfcPresentationStyleSelect {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4x1::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelorDraughting() const;
void setModelorDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x1::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -15398,12 +15458,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4x1::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4x1::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -17400,15 +17460,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4x1::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4x1::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x1::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x1::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -17437,12 +17497,12 @@ public:
::Ifc4x1::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4x1::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x1::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -17687,12 +17747,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4x1::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4x1::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -20742,7 +20802,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4x1::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -21858,15 +21918,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4x1::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4x1::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x1::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x1::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -21939,15 +21999,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x1::IfcUnit* Unit() const;
void setUnit(::Ifc4x1::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x1::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v3_ListValues, ::Ifc4x1::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22287,13 +22347,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22311,7 +22371,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x1::IfcUnit* v6_DefiningUnit, ::Ifc4x1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x1::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x1::IfcUnit* v6_DefiningUnit, ::Ifc4x1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -22837,12 +22897,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -22856,7 +22916,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -22897,7 +22957,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -22914,7 +22974,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x1::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x1::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -22932,7 +22992,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -22950,7 +23010,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -23055,7 +23115,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x1::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x1::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -23528,12 +23588,12 @@ public:
::Ifc4x1::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4x1::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x1::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x1::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x1::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -30737,14 +30797,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4x1::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4x1::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x1::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4x1::IfcSegmentIndexSelect >::ptr > v);
boost::optional< bool > SelfIntersect() const;
void setSelfIntersect(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4x1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4x1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x1::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -32759,12 +32819,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
/// The aggregation relationship
@@ -34958,11 +35018,11 @@ public:
::Ifc4x1::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4x1::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -34972,7 +35032,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4x1::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x1::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4x1::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x1::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x1::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -43885,12 +43945,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4x1::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x1::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/Ifc4x2-definitions.h b/src/ifcparse/Ifc4x2-definitions.h
index 8cc34cbc83..85c8a531f0 100644
--- a/src/ifcparse/Ifc4x2-definitions.h
+++ b/src/ifcparse/Ifc4x2-definitions.h
@@ -3805,3 +3805,52 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectObjectAssignment
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSiUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4x2.cpp b/src/ifcparse/Ifc4x2.cpp
index 3e31975014..af8e325e89 100644
--- a/src/ifcparse/Ifc4x2.cpp
+++ b/src/ifcparse/Ifc4x2.cpp
@@ -14094,8 +14094,8 @@ boost::optional< std::string > Ifc4x2::IfcDocumentInformation::Revision() const
void Ifc4x2::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4x2::IfcActorSelect* Ifc4x2::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4x2::IfcActorSelect>(true); }
void Ifc4x2::IfcDocumentInformation::setDocumentOwner(::Ifc4x2::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x2::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4x2::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4x2::IfcActorSelect >::ptr > Ifc4x2::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4x2::IfcActorSelect >(); }
+void Ifc4x2::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4x2::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4x2::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4x2::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4x2::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -14119,7 +14119,7 @@ void Ifc4x2::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4x2::IfcDoc
const IfcParse::entity& Ifc4x2::IfcDocumentInformation::declaration() const { return *IFC4X2_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4x2::IfcDocumentInformation::Class() { return *IFC4X2_IfcDocumentInformation_type; }
Ifc4x2::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x2::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x2::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x2::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x2::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x2::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4x2::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x2::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x2::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x2::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x2::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x2::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x2::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4x2::IfcDocumentInformation* Ifc4x2::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x2::IfcDocumentInformation>(true); }
@@ -14766,14 +14766,14 @@ Ifc4x2::IfcExternalReference::IfcExternalReference(boost::optional< std::string
// Function implementations for IfcExternalReferenceRelationship
::Ifc4x2::IfcExternalReference* Ifc4x2::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x2::IfcExternalReference>(true); }
void Ifc4x2::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4x2::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x2::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr Ifc4x2::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x2::IfcResourceObjectSelect >(); }
+void Ifc4x2::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x2::IfcExternalReferenceRelationship::declaration() const { return *IFC4X2_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4x2::IfcExternalReferenceRelationship::Class() { return *IFC4X2_IfcExternalReferenceRelationship_type; }
Ifc4x2::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x2::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4x2::IfcExternalSpatialElementTypeEnum::Value > Ifc4x2::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x2::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -15014,8 +15014,8 @@ Ifc4x2::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntityInst
Ifc4x2::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x2::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x2::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4x2::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x2::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x2::IfcFillStyleSelect >::ptr Ifc4x2::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x2::IfcFillStyleSelect >(); }
+void Ifc4x2::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4x2::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x2::IfcFillAreaStyle::ModelorDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x2::IfcFillAreaStyle::setModelorDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -15023,7 +15023,7 @@ void Ifc4x2::IfcFillAreaStyle::setModelorDraughting(boost::optional< bool > v) {
const IfcParse::entity& Ifc4x2::IfcFillAreaStyle::declaration() const { return *IFC4X2_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4x2::IfcFillAreaStyle::Class() { return *IFC4X2_IfcFillAreaStyle_type; }
Ifc4x2::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelorDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelorDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x2::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x2::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelorDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelorDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4x2::IfcCurveStyle* Ifc4x2::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x2::IfcCurveStyle>(true); }
@@ -15349,7 +15349,7 @@ Ifc4x2::IfcGeographicElementType::IfcGeographicElementType(std::string v1_Global
const IfcParse::entity& Ifc4x2::IfcGeometricCurveSet::declaration() const { return *IFC4X2_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4x2::IfcGeometricCurveSet::Class() { return *IFC4X2_IfcGeometricCurveSet_type; }
Ifc4x2::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x2::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4x2::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4x2::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -15394,14 +15394,14 @@ Ifc4x2::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubConte
Ifc4x2::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4x2::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4x2::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4x2::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4x2::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x2::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x2::IfcGeometricSetSelect >::ptr Ifc4x2::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x2::IfcGeometricSetSelect >(); }
+void Ifc4x2::IfcGeometricSet::setElements(aggregate_of< ::Ifc4x2::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x2::IfcGeometricSet::declaration() const { return *IFC4X2_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4x2::IfcGeometricSet::Class() { return *IFC4X2_IfcGeometricSet_type; }
Ifc4x2::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x2::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4x2::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGrid
aggregate_of< ::Ifc4x2::IfcGridAxis >::ptr Ifc4x2::IfcGrid::UAxes() const { aggregate_of_instance::ptr es = *data_->getArgument(7); return es->as< ::Ifc4x2::IfcGridAxis >(); }
@@ -15561,8 +15561,8 @@ Ifc4x2::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x2::IfcTessellatedFaceSet
// Function implementations for IfcIndexedPolyCurve
::Ifc4x2::IfcCartesianPointList* Ifc4x2::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x2::IfcCartesianPointList>(true); }
void Ifc4x2::IfcIndexedPolyCurve::setPoints(::Ifc4x2::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x2::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x2::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4x2::IfcSegmentIndexSelect >::ptr > Ifc4x2::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x2::IfcSegmentIndexSelect >(); }
+void Ifc4x2::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4x2::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x2::IfcIndexedPolyCurve::SelfIntersect() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x2::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -15570,7 +15570,7 @@ void Ifc4x2::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) {
const IfcParse::entity& Ifc4x2::IfcIndexedPolyCurve::declaration() const { return *IFC4X2_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4x2::IfcIndexedPolyCurve::Class() { return *IFC4X2_IfcIndexedPolyCurve_type; }
Ifc4x2::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x2::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x2::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x2::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x2::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4x2::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -15676,14 +15676,14 @@ Ifc4x2::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name, boos
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4x2::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x2::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x2::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x2::IfcValue >::ptr Ifc4x2::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x2::IfcValue >(); }
+void Ifc4x2::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x2::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4x2::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4X2_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x2::IfcIrregularTimeSeriesValue::Class() { return *IFC4X2_IfcIrregularTimeSeriesValue_type; }
Ifc4x2::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X2_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4x2::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4x2::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4x2::IfcJunctionBoxTypeEnum::Value > Ifc4x2::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x2::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -16072,8 +16072,8 @@ Ifc4x2::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDefiniti
Ifc4x2::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4x2::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x2::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x2::IfcClassificationSelect >::ptr Ifc4x2::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x2::IfcClassificationSelect >(); }
+void Ifc4x2::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4x2::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4x2::IfcMaterial* Ifc4x2::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4x2::IfcMaterial>(true); }
void Ifc4x2::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4x2::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -16081,7 +16081,7 @@ void Ifc4x2::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4
const IfcParse::entity& Ifc4x2::IfcMaterialClassificationRelationship::declaration() const { return *IFC4X2_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4x2::IfcMaterialClassificationRelationship::Class() { return *IFC4X2_IfcMaterialClassificationRelationship_type; }
Ifc4x2::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X2_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x2::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4x2::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4x2::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x2::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4x2::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -17211,8 +17211,8 @@ std::string Ifc4x2::IfcPresentationLayerAssignment::Name() const { std::string
void Ifc4x2::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4x2::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4x2::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x2::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x2::IfcLayeredItem >::ptr Ifc4x2::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x2::IfcLayeredItem >(); }
+void Ifc4x2::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4x2::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4x2::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4x2::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -17220,7 +17220,7 @@ void Ifc4x2::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std:
const IfcParse::entity& Ifc4x2::IfcPresentationLayerAssignment::declaration() const { return *IFC4X2_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4x2::IfcPresentationLayerAssignment::Class() { return *IFC4X2_IfcPresentationLayerAssignment_type; }
Ifc4x2::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X2_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4x2::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x2::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4x2::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -17236,7 +17236,7 @@ void Ifc4x2::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::Ifc4x
const IfcParse::entity& Ifc4x2::IfcPresentationLayerWithStyle::declaration() const { return *IFC4X2_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4x2::IfcPresentationLayerWithStyle::Class() { return *IFC4X2_IfcPresentationLayerWithStyle_type; }
Ifc4x2::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x2::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4x2::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x2::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x2::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4x2::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -17249,14 +17249,14 @@ Ifc4x2::IfcPresentationStyle::IfcPresentationStyle(IfcEntityInstanceData* e) : I
Ifc4x2::IfcPresentationStyle::IfcPresentationStyle(boost::optional< std::string > v1_Name) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcPresentationStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } }
// Function implementations for IfcPresentationStyleAssignment
-aggregate_of_instance::ptr Ifc4x2::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x2::IfcPresentationStyleAssignment::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x2::IfcPresentationStyleSelect >::ptr Ifc4x2::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x2::IfcPresentationStyleSelect >(); }
+void Ifc4x2::IfcPresentationStyleAssignment::setStyles(aggregate_of< ::Ifc4x2::IfcPresentationStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x2::IfcPresentationStyleAssignment::declaration() const { return *IFC4X2_IfcPresentationStyleAssignment_type; }
const IfcParse::entity& Ifc4x2::IfcPresentationStyleAssignment::Class() { return *IFC4X2_IfcPresentationStyleAssignment_type; }
Ifc4x2::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X2_IfcPresentationStyleAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of_instance::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles));data_->setArgument(0,attr);} }
+Ifc4x2::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of< ::Ifc4x2::IfcPresentationStyleSelect >::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcProcedure
boost::optional< ::Ifc4x2::IfcProcedureTypeEnum::Value > Ifc4x2::IfcProcedure::PredefinedType() const { if(!data_->getArgument(7) || data_->getArgument(7)->isNull()) { return boost::none; } return ::Ifc4x2::IfcProcedureTypeEnum::FromString(*data_->getArgument(7)); }
@@ -17477,8 +17477,8 @@ Ifc4x2::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(Ifc
Ifc4x2::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcProperty* v3_DependingProperty, ::Ifc4x2::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x2::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x2::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > Ifc4x2::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x2::IfcValue >(); }
+void Ifc4x2::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x2::IfcPropertyEnumeration* Ifc4x2::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x2::IfcPropertyEnumeration>(true); }
void Ifc4x2::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x2::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -17486,13 +17486,13 @@ void Ifc4x2::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x2::IfcPr
const IfcParse::entity& Ifc4x2::IfcPropertyEnumeratedValue::declaration() const { return *IFC4X2_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4x2::IfcPropertyEnumeratedValue::Class() { return *IFC4X2_IfcPropertyEnumeratedValue_type; }
Ifc4x2::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x2::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4x2::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x2::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4x2::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x2::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x2::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x2::IfcValue >::ptr Ifc4x2::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x2::IfcValue >(); }
+void Ifc4x2::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4x2::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4x2::IfcUnit* Ifc4x2::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x2::IfcUnit>(true); }
void Ifc4x2::IfcPropertyEnumeration::setUnit(::Ifc4x2::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -17500,11 +17500,11 @@ void Ifc4x2::IfcPropertyEnumeration::setUnit(::Ifc4x2::IfcUnit* v) { {IfcWrite::
const IfcParse::entity& Ifc4x2::IfcPropertyEnumeration::declaration() const { return *IFC4X2_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4x2::IfcPropertyEnumeration::Class() { return *IFC4X2_IfcPropertyEnumeration_type; }
Ifc4x2::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x2::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4x2::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4x2::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x2::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x2::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x2::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > Ifc4x2::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x2::IfcValue >(); }
+void Ifc4x2::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x2::IfcUnit* Ifc4x2::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x2::IfcUnit>(true); }
void Ifc4x2::IfcPropertyListValue::setUnit(::Ifc4x2::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -17512,7 +17512,7 @@ void Ifc4x2::IfcPropertyListValue::setUnit(::Ifc4x2::IfcUnit* v) { {IfcWrite::If
const IfcParse::entity& Ifc4x2::IfcPropertyListValue::declaration() const { return *IFC4X2_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4x2::IfcPropertyListValue::Class() { return *IFC4X2_IfcPropertyListValue_type; }
Ifc4x2::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x2::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4x2::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v3_ListValues, ::Ifc4x2::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4x2::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -17575,10 +17575,10 @@ Ifc4x2::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData* e)
Ifc4x2::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcValue* v3_NominalValue, ::Ifc4x2::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x2::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x2::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x2::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x2::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > Ifc4x2::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x2::IfcValue >(); }
+void Ifc4x2::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > Ifc4x2::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x2::IfcValue >(); }
+void Ifc4x2::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4x2::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4x2::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4x2::IfcUnit* Ifc4x2::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x2::IfcUnit>(true); }
@@ -17592,7 +17592,7 @@ void Ifc4x2::IfcPropertyTableValue::setCurveInterpolation(boost::optional< ::Ifc
const IfcParse::entity& Ifc4x2::IfcPropertyTableValue::declaration() const { return *IFC4X2_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4x2::IfcPropertyTableValue::Class() { return *IFC4X2_IfcPropertyTableValue_type; }
Ifc4x2::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x2::IfcUnit* v6_DefiningUnit, ::Ifc4x2::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x2::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x2::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4x2::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x2::IfcUnit* v6_DefiningUnit, ::Ifc4x2::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x2::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x2::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -18035,14 +18035,14 @@ boost::optional< ::Ifc4x2::IfcReinforcingBarSurfaceEnum::Value > Ifc4x2::IfcRein
void Ifc4x2::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4x2::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4x2::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4x2::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4x2::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x2::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4x2::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > Ifc4x2::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4x2::IfcBendingParameterSelect >(); }
+void Ifc4x2::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4x2::IfcReinforcingBarType::declaration() const { return *IFC4X2_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4x2::IfcReinforcingBarType::Class() { return *IFC4X2_IfcReinforcingBarType_type; }
Ifc4x2::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x2::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x2::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x2::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x2::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4x2::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x2::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x2::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x2::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x2::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4x2::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -18109,14 +18109,14 @@ boost::optional< double > Ifc4x2::IfcReinforcingMeshType::TransverseBarSpacing()
void Ifc4x2::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4x2::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4x2::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x2::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4x2::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > Ifc4x2::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4x2::IfcBendingParameterSelect >(); }
+void Ifc4x2::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4x2::IfcReinforcingMeshType::declaration() const { return *IFC4X2_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4x2::IfcReinforcingMeshType::Class() { return *IFC4X2_IfcReinforcingMeshType_type; }
Ifc4x2::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x2::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x2::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4x2::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x2::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x2::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAggregates
::Ifc4x2::IfcObjectDefinition* Ifc4x2::IfcRelAggregates::RelatingObject() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x2::IfcObjectDefinition>(true); }
@@ -18217,14 +18217,14 @@ Ifc4x2::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceData*
Ifc4x2::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4x2::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x2::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v6_RelatedObjectsType,::Ifc4x2::IfcObjectTypeEnum::ToString(*v6_RelatedObjectsType))));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4x2::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x2::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr Ifc4x2::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x2::IfcDefinitionSelect >(); }
+void Ifc4x2::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4x2::IfcRelAssociates::declaration() const { return *IFC4X2_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4x2::IfcRelAssociates::Class() { return *IFC4X2_IfcRelAssociates_type; }
Ifc4x2::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4x2::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4x2::IfcApproval* Ifc4x2::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x2::IfcApproval>(true); }
@@ -18234,7 +18234,7 @@ void Ifc4x2::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4x2::IfcApproval
const IfcParse::entity& Ifc4x2::IfcRelAssociatesApproval::declaration() const { return *IFC4X2_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4x2::IfcRelAssociatesApproval::Class() { return *IFC4X2_IfcRelAssociatesApproval_type; }
Ifc4x2::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4x2::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4x2::IfcClassificationSelect* Ifc4x2::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x2::IfcClassificationSelect>(true); }
@@ -18244,7 +18244,7 @@ void Ifc4x2::IfcRelAssociatesClassification::setRelatingClassification(::Ifc4x2:
const IfcParse::entity& Ifc4x2::IfcRelAssociatesClassification::declaration() const { return *IFC4X2_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4x2::IfcRelAssociatesClassification::Class() { return *IFC4X2_IfcRelAssociatesClassification_type; }
Ifc4x2::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4x2::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4x2::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -18256,7 +18256,7 @@ void Ifc4x2::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4x2::IfcCons
const IfcParse::entity& Ifc4x2::IfcRelAssociatesConstraint::declaration() const { return *IFC4X2_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4x2::IfcRelAssociatesConstraint::Class() { return *IFC4X2_IfcRelAssociatesConstraint_type; }
Ifc4x2::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x2::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4x2::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x2::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4x2::IfcDocumentSelect* Ifc4x2::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x2::IfcDocumentSelect>(true); }
@@ -18266,7 +18266,7 @@ void Ifc4x2::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4x2::IfcDocument
const IfcParse::entity& Ifc4x2::IfcRelAssociatesDocument::declaration() const { return *IFC4X2_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4x2::IfcRelAssociatesDocument::Class() { return *IFC4X2_IfcRelAssociatesDocument_type; }
Ifc4x2::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4x2::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4x2::IfcLibrarySelect* Ifc4x2::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x2::IfcLibrarySelect>(true); }
@@ -18276,7 +18276,7 @@ void Ifc4x2::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4x2::IfcLibrarySel
const IfcParse::entity& Ifc4x2::IfcRelAssociatesLibrary::declaration() const { return *IFC4X2_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4x2::IfcRelAssociatesLibrary::Class() { return *IFC4X2_IfcRelAssociatesLibrary_type; }
Ifc4x2::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4x2::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4x2::IfcMaterialSelect* Ifc4x2::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x2::IfcMaterialSelect>(true); }
@@ -18286,7 +18286,7 @@ void Ifc4x2::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4x2::IfcMaterial
const IfcParse::entity& Ifc4x2::IfcRelAssociatesMaterial::declaration() const { return *IFC4X2_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4x2::IfcRelAssociatesMaterial::Class() { return *IFC4X2_IfcRelAssociatesMaterial_type; }
Ifc4x2::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4x2::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -18445,14 +18445,14 @@ Ifc4x2::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::Ifc4x2
// Function implementations for IfcRelDeclares
::Ifc4x2::IfcContext* Ifc4x2::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x2::IfcContext>(true); }
void Ifc4x2::IfcRelDeclares::setRelatingContext(::Ifc4x2::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4x2::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr Ifc4x2::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4x2::IfcDefinitionSelect >(); }
+void Ifc4x2::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4x2::IfcRelDeclares::declaration() const { return *IFC4X2_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4x2::IfcRelDeclares::Class() { return *IFC4X2_IfcRelDeclares_type; }
Ifc4x2::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x2::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4x2::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x2::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -18778,8 +18778,8 @@ Ifc4x2::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((IfcEntit
Ifc4x2::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4x2::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x2::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr Ifc4x2::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x2::IfcResourceObjectSelect >(); }
+void Ifc4x2::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4x2::IfcApproval* Ifc4x2::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x2::IfcApproval>(true); }
void Ifc4x2::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x2::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -18787,19 +18787,19 @@ void Ifc4x2::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x2::IfcA
const IfcParse::entity& Ifc4x2::IfcResourceApprovalRelationship::declaration() const { return *IFC4X2_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4x2::IfcResourceApprovalRelationship::Class() { return *IFC4X2_IfcResourceApprovalRelationship_type; }
Ifc4x2::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x2::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4x2::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x2::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4x2::IfcConstraint* Ifc4x2::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x2::IfcConstraint>(true); }
void Ifc4x2::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4x2::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x2::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr Ifc4x2::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x2::IfcResourceObjectSelect >(); }
+void Ifc4x2::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x2::IfcResourceConstraintRelationship::declaration() const { return *IFC4X2_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4x2::IfcResourceConstraintRelationship::Class() { return *IFC4X2_IfcResourceConstraintRelationship_type; }
Ifc4x2::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x2::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4x2::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19146,14 +19146,14 @@ Ifc4x2::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData* e)
Ifc4x2::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x2::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4x2::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4x2::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x2::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x2::IfcShell >::ptr Ifc4x2::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x2::IfcShell >(); }
+void Ifc4x2::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4x2::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x2::IfcShellBasedSurfaceModel::declaration() const { return *IFC4X2_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4x2::IfcShellBasedSurfaceModel::Class() { return *IFC4X2_IfcShellBasedSurfaceModel_type; }
Ifc4x2::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4x2::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4x2::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSimpleProperty
@@ -19914,8 +19914,8 @@ Ifc4x2::IfcStyleModel::IfcStyleModel(::Ifc4x2::IfcRepresentationContext* v1_Cont
// Function implementations for IfcStyledItem
::Ifc4x2::IfcRepresentationItem* Ifc4x2::IfcStyledItem::Item() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x2::IfcRepresentationItem>(true); }
void Ifc4x2::IfcStyledItem::setItem(::Ifc4x2::IfcRepresentationItem* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcStyledItem::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x2::IfcStyledItem::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x2::IfcStyleAssignmentSelect >::ptr Ifc4x2::IfcStyledItem::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x2::IfcStyleAssignmentSelect >(); }
+void Ifc4x2::IfcStyledItem::setStyles(aggregate_of< ::Ifc4x2::IfcStyleAssignmentSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< std::string > Ifc4x2::IfcStyledItem::Name() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
void Ifc4x2::IfcStyledItem::setName(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -19923,7 +19923,7 @@ void Ifc4x2::IfcStyledItem::setName(boost::optional< std::string > v) { {IfcWrit
const IfcParse::entity& Ifc4x2::IfcStyledItem::declaration() const { return *IFC4X2_IfcStyledItem_type; }
const IfcParse::entity& Ifc4x2::IfcStyledItem::Class() { return *IFC4X2_IfcStyledItem_type; }
Ifc4x2::IfcStyledItem::IfcStyledItem(IfcEntityInstanceData* e) : IfcRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcStyledItem_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcStyledItem::IfcStyledItem(::Ifc4x2::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x2::IfcStyledItem::IfcStyledItem(::Ifc4x2::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4x2::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles)->generalize());data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcStyledRepresentation
@@ -20050,14 +20050,14 @@ Ifc4x2::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::optional
// Function implementations for IfcSurfaceStyle
::Ifc4x2::IfcSurfaceSide::Value Ifc4x2::IfcSurfaceStyle::Side() const { return ::Ifc4x2::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4x2::IfcSurfaceStyle::setSide(::Ifc4x2::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x2::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x2::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x2::IfcSurfaceStyleElementSelect >::ptr Ifc4x2::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x2::IfcSurfaceStyleElementSelect >(); }
+void Ifc4x2::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4x2::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4x2::IfcSurfaceStyle::declaration() const { return *IFC4X2_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4x2::IfcSurfaceStyle::Class() { return *IFC4X2_IfcSurfaceStyle_type; }
Ifc4x2::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x2::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x2::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4x2::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x2::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x2::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x2::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4x2::IfcColourRgb* Ifc4x2::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x2::IfcColourRgb>(true); }
@@ -20311,8 +20311,8 @@ Ifc4x2::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil::IfcB
Ifc4x2::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4x2::IfcUnit* v4_Unit, ::Ifc4x2::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4x2::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x2::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > Ifc4x2::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x2::IfcValue >(); }
+void Ifc4x2::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4x2::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4x2::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -20320,7 +20320,7 @@ void Ifc4x2::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::I
const IfcParse::entity& Ifc4x2::IfcTableRow::declaration() const { return *IFC4X2_IfcTableRow_type; }
const IfcParse::entity& Ifc4x2::IfcTableRow::Class() { return *IFC4X2_IfcTableRow_type; }
Ifc4x2::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X2_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4x2::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4x2::IfcTankTypeEnum::Value > Ifc4x2::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x2::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -20732,14 +20732,14 @@ Ifc4x2::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::IfcBas
Ifc4x2::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x2::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x2::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x2::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4x2::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4x2::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4x2::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x2::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x2::IfcValue >::ptr Ifc4x2::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x2::IfcValue >(); }
+void Ifc4x2::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x2::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x2::IfcTimeSeriesValue::declaration() const { return *IFC4X2_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x2::IfcTimeSeriesValue::Class() { return *IFC4X2_IfcTimeSeriesValue_type; }
Ifc4x2::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X2_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4x2::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4x2::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -20872,10 +20872,10 @@ Ifc4x2::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::Ifc4x
// Function implementations for IfcTrimmedCurve
::Ifc4x2::IfcCurve* Ifc4x2::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x2::IfcCurve>(true); }
void Ifc4x2::IfcTrimmedCurve::setBasisCurve(::Ifc4x2::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x2::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x2::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x2::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr Ifc4x2::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x2::IfcTrimmingSelect >(); }
+void Ifc4x2::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr Ifc4x2::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x2::IfcTrimmingSelect >(); }
+void Ifc4x2::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4x2::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4x2::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4x2::IfcTrimmingPreference::Value Ifc4x2::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x2::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -20885,7 +20885,7 @@ void Ifc4x2::IfcTrimmedCurve::setMasterRepresentation(::Ifc4x2::IfcTrimmingPrefe
const IfcParse::entity& Ifc4x2::IfcTrimmedCurve::declaration() const { return *IFC4X2_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4x2::IfcTrimmedCurve::Class() { return *IFC4X2_IfcTrimmedCurve_type; }
Ifc4x2::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X2_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x2::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x2::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x2::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4x2::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x2::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x2::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x2::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4x2::IfcTubeBundleTypeEnum::Value > Ifc4x2::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x2::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -20986,14 +20986,14 @@ Ifc4x2::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) : Ifc
Ifc4x2::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x2::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4x2::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X2_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4x2::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4x2::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x2::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x2::IfcUnit >::ptr Ifc4x2::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x2::IfcUnit >(); }
+void Ifc4x2::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4x2::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x2::IfcUnitAssignment::declaration() const { return *IFC4X2_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4x2::IfcUnitAssignment::Class() { return *IFC4X2_IfcUnitAssignment_type; }
Ifc4x2::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X2_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x2::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4x2::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4x2::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X2_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4x2::IfcUnitaryControlElementTypeEnum::Value > Ifc4x2::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x2::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4x2.h b/src/ifcparse/Ifc4x2.h
index 5be96d9c8c..2dc445cd26 100644
--- a/src/ifcparse/Ifc4x2.h
+++ b/src/ifcparse/Ifc4x2.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,11 +201,13 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -207,6 +220,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -216,6 +230,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -227,6 +242,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -305,6 +321,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -317,6 +334,7 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -327,6 +345,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -336,6 +355,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -348,6 +368,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -355,6 +376,7 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -366,6 +388,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -380,6 +403,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -406,6 +430,7 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -436,6 +461,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -449,6 +475,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -465,6 +492,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -472,6 +500,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -479,6 +508,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -486,6 +516,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -493,6 +524,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -504,6 +536,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// Definition from ISO/CD 10303-46:1992: The presentation style select is a selection of one of many kinds of styles, a different one for each kind of geometric representation item to be styled.
///
@@ -516,6 +549,7 @@ public:
class IFC_PARSE_API IfcPresentationStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPresentationStyleSelect > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -530,11 +564,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -548,11 +584,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -560,6 +598,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -573,6 +612,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -580,11 +620,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -600,6 +642,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -623,6 +666,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -639,6 +683,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -650,6 +695,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -666,6 +712,7 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -680,6 +727,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -693,6 +741,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// The style assignment select is a selection of two wasy of assigning presentation styles to an IfcStyledItem.
///
@@ -707,6 +756,7 @@ public:
class IFC_PARSE_API IfcStyleAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStyleAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -720,6 +770,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -733,6 +784,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -744,12 +796,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -757,6 +811,7 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -766,6 +821,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -783,6 +839,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -797,6 +854,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -809,6 +867,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -816,6 +875,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -10608,12 +10668,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x2::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4x2::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -10787,15 +10847,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4x2::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4x2::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4x2::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x2::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4x2::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x2::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -11586,15 +11646,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4x2::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x2::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -11631,7 +11691,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x2::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x2::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x2::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -11658,12 +11718,12 @@ public:
class IFC_PARSE_API IfcPresentationStyleAssignment : public IfcUtil::IfcBaseEntity, public IfcStyleAssignmentSelect {
public:
/// A set of presentation styles that are assigned to styled items.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcPresentationStyleSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x2::IfcPresentationStyleSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationStyleAssignment (IfcEntityInstanceData* e);
- IfcPresentationStyleAssignment (aggregate_of_instance::ptr v1_Styles);
+ IfcPresentationStyleAssignment (aggregate_of< ::Ifc4x2::IfcPresentationStyleSelect >::ptr v1_Styles);
typedef aggregate_of< IfcPresentationStyleAssignment > list;
};
/// IfcProductRepresentation defines a representation of a
@@ -11995,15 +12055,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4x2::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x2::IfcUnit* Unit() const;
void setUnit(::Ifc4x2::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x2::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4x2::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x2::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -12853,15 +12913,15 @@ public:
/// for file based exchange.
///
/// NOTE Only the select item IfcPresentationStyle shall be used from IFC2x4 onwards, the IfcPresentationStyleAssignment has been deprecated.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcStyleAssignmentSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x2::IfcStyleAssignmentSelect >::ptr v);
/// The word, or group of words, by which the styled item is referred to.
boost::optional< std::string > Name() const;
void setName(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcStyledItem (IfcEntityInstanceData* e);
- IfcStyledItem (::Ifc4x2::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name);
+ IfcStyledItem (::Ifc4x2::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4x2::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name);
typedef aggregate_of< IfcStyledItem > list;
};
/// The IfcStyledRepresentation represents the concept of a styled presentation being a representation of a product or a product component, like material. within a representation context. This representation context does not need to be (but may be) a geometric representation context.
@@ -12914,12 +12974,12 @@ public:
::Ifc4x2::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4x2::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x2::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x2::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x2::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x2::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13228,15 +13288,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -13785,12 +13845,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x2::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4x2::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -13856,12 +13916,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4x2::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4x2::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -14837,8 +14897,8 @@ public:
::Ifc4x2::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4x2::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x2::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4x2::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -14879,7 +14939,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x2::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x2::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x2::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x2::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x2::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x2::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x2::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -15120,12 +15180,12 @@ public:
::Ifc4x2::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4x2::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15336,14 +15396,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle, public IfcPresentationStyleSelect {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4x2::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelorDraughting() const;
void setModelorDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x2::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -15497,12 +15557,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4x2::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4x2::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -17496,15 +17556,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4x2::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4x2::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x2::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x2::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -17533,12 +17593,12 @@ public:
::Ifc4x2::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4x2::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x2::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x2::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -17783,12 +17843,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4x2::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4x2::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -20838,7 +20898,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4x2::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -21955,15 +22015,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4x2::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4x2::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x2::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x2::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -22036,15 +22096,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x2::IfcUnit* Unit() const;
void setUnit(::Ifc4x2::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x2::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v3_ListValues, ::Ifc4x2::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22384,13 +22444,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22408,7 +22468,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x2::IfcUnit* v6_DefiningUnit, ::Ifc4x2::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x2::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x2::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x2::IfcUnit* v6_DefiningUnit, ::Ifc4x2::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x2::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -22934,12 +22994,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -22953,7 +23013,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -22994,7 +23054,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -23011,7 +23071,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x2::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x2::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -23029,7 +23089,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -23047,7 +23107,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -23152,7 +23212,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x2::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x2::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -23625,12 +23685,12 @@ public:
::Ifc4x2::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4x2::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x2::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x2::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x2::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -30496,14 +30556,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4x2::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4x2::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x2::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4x2::IfcSegmentIndexSelect >::ptr > v);
boost::optional< bool > SelfIntersect() const;
void setSelfIntersect(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4x2::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4x2::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x2::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -32519,12 +32579,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x2::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x2::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
/// The aggregation relationship
@@ -34740,11 +34800,11 @@ public:
::Ifc4x2::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4x2::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -34754,7 +34814,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4x2::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x2::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4x2::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x2::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x2::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -44121,12 +44181,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4x2::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x2::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x2::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x2::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x2::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x2::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/Ifc4x3-definitions.h b/src/ifcparse/Ifc4x3-definitions.h
index cfab4fc05e..2f33085a2e 100644
--- a/src/ifcparse/Ifc4x3-definitions.h
+++ b/src/ifcparse/Ifc4x3-definitions.h
@@ -4026,3 +4026,53 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectObjectAssignment
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSIUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcGradient
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4x3.cpp b/src/ifcparse/Ifc4x3.cpp
index e7c93c338c..c0b6895cfb 100644
--- a/src/ifcparse/Ifc4x3.cpp
+++ b/src/ifcparse/Ifc4x3.cpp
@@ -15789,8 +15789,8 @@ boost::optional< std::string > Ifc4x3::IfcDocumentInformation::Revision() const
void Ifc4x3::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4x3::IfcActorSelect* Ifc4x3::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4x3::IfcActorSelect>(true); }
void Ifc4x3::IfcDocumentInformation::setDocumentOwner(::Ifc4x3::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4x3::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3::IfcActorSelect >::ptr > Ifc4x3::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4x3::IfcActorSelect >(); }
+void Ifc4x3::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4x3::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4x3::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4x3::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4x3::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -15814,7 +15814,7 @@ void Ifc4x3::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4x3::IfcDoc
const IfcParse::entity& Ifc4x3::IfcDocumentInformation::declaration() const { return *IFC4X3_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4x3::IfcDocumentInformation::Class() { return *IFC4X3_IfcDocumentInformation_type; }
Ifc4x3::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4x3::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4x3::IfcDocumentInformation* Ifc4x3::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3::IfcDocumentInformation>(true); }
@@ -16485,14 +16485,14 @@ Ifc4x3::IfcExternalReference::IfcExternalReference(boost::optional< std::string
// Function implementations for IfcExternalReferenceRelationship
::Ifc4x3::IfcExternalReference* Ifc4x3::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3::IfcExternalReference>(true); }
void Ifc4x3::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4x3::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr Ifc4x3::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3::IfcResourceObjectSelect >(); }
+void Ifc4x3::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3::IfcExternalReferenceRelationship::declaration() const { return *IFC4X3_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4x3::IfcExternalReferenceRelationship::Class() { return *IFC4X3_IfcExternalReferenceRelationship_type; }
Ifc4x3::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4x3::IfcExternalSpatialElementTypeEnum::Value > Ifc4x3::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -16745,8 +16745,8 @@ Ifc4x3::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntityInst
Ifc4x3::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4x3::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3::IfcFillStyleSelect >::ptr Ifc4x3::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3::IfcFillStyleSelect >(); }
+void Ifc4x3::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4x3::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3::IfcFillAreaStyle::ModelOrDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -16754,7 +16754,7 @@ void Ifc4x3::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool > v) {
const IfcParse::entity& Ifc4x3::IfcFillAreaStyle::declaration() const { return *IFC4X3_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4x3::IfcFillAreaStyle::Class() { return *IFC4X3_IfcFillAreaStyle_type; }
Ifc4x3::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4x3::IfcCurveStyle* Ifc4x3::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3::IfcCurveStyle>(true); }
@@ -17074,7 +17074,7 @@ Ifc4x3::IfcGeographicElementType::IfcGeographicElementType(std::string v1_Global
const IfcParse::entity& Ifc4x3::IfcGeometricCurveSet::declaration() const { return *IFC4X3_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4x3::IfcGeometricCurveSet::Class() { return *IFC4X3_IfcGeometricCurveSet_type; }
Ifc4x3::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4x3::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4x3::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -17119,14 +17119,14 @@ Ifc4x3::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubConte
Ifc4x3::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4x3::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4x3::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4x3::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4x3::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3::IfcGeometricSetSelect >::ptr Ifc4x3::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3::IfcGeometricSetSelect >(); }
+void Ifc4x3::IfcGeometricSet::setElements(aggregate_of< ::Ifc4x3::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3::IfcGeometricSet::declaration() const { return *IFC4X3_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4x3::IfcGeometricSet::Class() { return *IFC4X3_IfcGeometricSet_type; }
Ifc4x3::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4x3::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeomodel
@@ -17361,8 +17361,8 @@ Ifc4x3::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x3::IfcTessellatedFaceSet
// Function implementations for IfcIndexedPolyCurve
::Ifc4x3::IfcCartesianPointList* Ifc4x3::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3::IfcCartesianPointList>(true); }
void Ifc4x3::IfcIndexedPolyCurve::setPoints(::Ifc4x3::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3::IfcSegmentIndexSelect >::ptr > Ifc4x3::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3::IfcSegmentIndexSelect >(); }
+void Ifc4x3::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4x3::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::logic::tribool Ifc4x3::IfcIndexedPolyCurve::SelfIntersect() const { boost::logic::tribool v = *data_->getArgument(2); return v; }
void Ifc4x3::IfcIndexedPolyCurve::setSelfIntersect(boost::logic::tribool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -17370,7 +17370,7 @@ void Ifc4x3::IfcIndexedPolyCurve::setSelfIntersect(boost::logic::tribool v) { {I
const IfcParse::entity& Ifc4x3::IfcIndexedPolyCurve::declaration() const { return *IFC4X3_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4x3::IfcIndexedPolyCurve::Class() { return *IFC4X3_IfcIndexedPolyCurve_type; }
Ifc4x3::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::logic::tribool v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_SelfIntersect));data_->setArgument(2,attr);} }
+Ifc4x3::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::logic::tribool v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_SelfIntersect));data_->setArgument(2,attr);} }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4x3::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -17487,14 +17487,14 @@ Ifc4x3::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name, boos
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4x3::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3::IfcValue >::ptr Ifc4x3::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3::IfcValue >(); }
+void Ifc4x3::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4x3::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4X3_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3::IfcIrregularTimeSeriesValue::Class() { return *IFC4X3_IfcIrregularTimeSeriesValue_type; }
Ifc4x3::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4x3::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4x3::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4x3::IfcJunctionBoxTypeEnum::Value > Ifc4x3::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -17941,8 +17941,8 @@ Ifc4x3::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDefiniti
Ifc4x3::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4x3::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3::IfcClassificationSelect >::ptr Ifc4x3::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3::IfcClassificationSelect >(); }
+void Ifc4x3::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4x3::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4x3::IfcMaterial* Ifc4x3::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4x3::IfcMaterial>(true); }
void Ifc4x3::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4x3::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -17950,7 +17950,7 @@ void Ifc4x3::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4
const IfcParse::entity& Ifc4x3::IfcMaterialClassificationRelationship::declaration() const { return *IFC4X3_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4x3::IfcMaterialClassificationRelationship::Class() { return *IFC4X3_IfcMaterialClassificationRelationship_type; }
Ifc4x3::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4x3::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4x3::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4x3::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19175,8 +19175,8 @@ std::string Ifc4x3::IfcPresentationLayerAssignment::Name() const { std::string
void Ifc4x3::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4x3::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4x3::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3::IfcLayeredItem >::ptr Ifc4x3::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3::IfcLayeredItem >(); }
+void Ifc4x3::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4x3::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4x3::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4x3::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -19184,7 +19184,7 @@ void Ifc4x3::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std:
const IfcParse::entity& Ifc4x3::IfcPresentationLayerAssignment::declaration() const { return *IFC4X3_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4x3::IfcPresentationLayerAssignment::Class() { return *IFC4X3_IfcPresentationLayerAssignment_type; }
Ifc4x3::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4x3::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4x3::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -19200,7 +19200,7 @@ void Ifc4x3::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::Ifc4x
const IfcParse::entity& Ifc4x3::IfcPresentationLayerWithStyle::declaration() const { return *IFC4X3_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4x3::IfcPresentationLayerWithStyle::Class() { return *IFC4X3_IfcPresentationLayerWithStyle_type; }
Ifc4x3::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4x3::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4x3::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19432,8 +19432,8 @@ Ifc4x3::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(Ifc
Ifc4x3::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3::IfcProperty* v3_DependingProperty, ::Ifc4x3::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > Ifc4x3::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3::IfcValue >(); }
+void Ifc4x3::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3::IfcPropertyEnumeration* Ifc4x3::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3::IfcPropertyEnumeration>(true); }
void Ifc4x3::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19441,13 +19441,13 @@ void Ifc4x3::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3::IfcPr
const IfcParse::entity& Ifc4x3::IfcPropertyEnumeratedValue::declaration() const { return *IFC4X3_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4x3::IfcPropertyEnumeratedValue::Class() { return *IFC4X3_IfcPropertyEnumeratedValue_type; }
Ifc4x3::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4x3::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4x3::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3::IfcValue >::ptr Ifc4x3::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3::IfcValue >(); }
+void Ifc4x3::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4x3::IfcUnit* Ifc4x3::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3::IfcUnit>(true); }
void Ifc4x3::IfcPropertyEnumeration::setUnit(::Ifc4x3::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -19455,11 +19455,11 @@ void Ifc4x3::IfcPropertyEnumeration::setUnit(::Ifc4x3::IfcUnit* v) { {IfcWrite::
const IfcParse::entity& Ifc4x3::IfcPropertyEnumeration::declaration() const { return *IFC4X3_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4x3::IfcPropertyEnumeration::Class() { return *IFC4X3_IfcPropertyEnumeration_type; }
Ifc4x3::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4x3::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4x3::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > Ifc4x3::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3::IfcValue >(); }
+void Ifc4x3::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3::IfcUnit* Ifc4x3::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3::IfcUnit>(true); }
void Ifc4x3::IfcPropertyListValue::setUnit(::Ifc4x3::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19467,7 +19467,7 @@ void Ifc4x3::IfcPropertyListValue::setUnit(::Ifc4x3::IfcUnit* v) { {IfcWrite::If
const IfcParse::entity& Ifc4x3::IfcPropertyListValue::declaration() const { return *IFC4X3_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4x3::IfcPropertyListValue::Class() { return *IFC4X3_IfcPropertyListValue_type; }
Ifc4x3::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4x3::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v3_ListValues, ::Ifc4x3::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4x3::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -19530,10 +19530,10 @@ Ifc4x3::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData* e)
Ifc4x3::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Specification, ::Ifc4x3::IfcValue* v3_NominalValue, ::Ifc4x3::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > Ifc4x3::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3::IfcValue >(); }
+void Ifc4x3::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > Ifc4x3::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3::IfcValue >(); }
+void Ifc4x3::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4x3::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4x3::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4x3::IfcUnit* Ifc4x3::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3::IfcUnit>(true); }
@@ -19547,7 +19547,7 @@ void Ifc4x3::IfcPropertyTableValue::setCurveInterpolation(boost::optional< ::Ifc
const IfcParse::entity& Ifc4x3::IfcPropertyTableValue::declaration() const { return *IFC4X3_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4x3::IfcPropertyTableValue::Class() { return *IFC4X3_IfcPropertyTableValue_type; }
Ifc4x3::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3::IfcUnit* v6_DefiningUnit, ::Ifc4x3::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4x3::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3::IfcUnit* v6_DefiningUnit, ::Ifc4x3::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -20038,14 +20038,14 @@ boost::optional< ::Ifc4x3::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3::IfcRein
void Ifc4x3::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4x3::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4x3::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4x3::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4x3::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4x3::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > Ifc4x3::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4x3::IfcBendingParameterSelect >(); }
+void Ifc4x3::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4x3::IfcReinforcingBarType::declaration() const { return *IFC4X3_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4x3::IfcReinforcingBarType::Class() { return *IFC4X3_IfcReinforcingBarType_type; }
Ifc4x3::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4x3::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4x3::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -20112,14 +20112,14 @@ boost::optional< double > Ifc4x3::IfcReinforcingMeshType::TransverseBarSpacing()
void Ifc4x3::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4x3::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4x3::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4x3::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > Ifc4x3::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4x3::IfcBendingParameterSelect >(); }
+void Ifc4x3::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4x3::IfcReinforcingMeshType::declaration() const { return *IFC4X3_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4x3::IfcReinforcingMeshType::Class() { return *IFC4X3_IfcReinforcingMeshType_type; }
Ifc4x3::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4x3::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAdheresToElement
::Ifc4x3::IfcElement* Ifc4x3::IfcRelAdheresToElement::RelatingElement() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3::IfcElement>(true); }
@@ -20232,14 +20232,14 @@ Ifc4x3::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceData*
Ifc4x3::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4x3::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v6_RelatedObjectsType,::Ifc4x3::IfcObjectTypeEnum::ToString(*v6_RelatedObjectsType))));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4x3::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr Ifc4x3::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3::IfcDefinitionSelect >(); }
+void Ifc4x3::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4x3::IfcRelAssociates::declaration() const { return *IFC4X3_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4x3::IfcRelAssociates::Class() { return *IFC4X3_IfcRelAssociates_type; }
Ifc4x3::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4x3::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4x3::IfcApproval* Ifc4x3::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3::IfcApproval>(true); }
@@ -20249,7 +20249,7 @@ void Ifc4x3::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4x3::IfcApproval
const IfcParse::entity& Ifc4x3::IfcRelAssociatesApproval::declaration() const { return *IFC4X3_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4x3::IfcRelAssociatesApproval::Class() { return *IFC4X3_IfcRelAssociatesApproval_type; }
Ifc4x3::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4x3::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4x3::IfcClassificationSelect* Ifc4x3::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3::IfcClassificationSelect>(true); }
@@ -20259,7 +20259,7 @@ void Ifc4x3::IfcRelAssociatesClassification::setRelatingClassification(::Ifc4x3:
const IfcParse::entity& Ifc4x3::IfcRelAssociatesClassification::declaration() const { return *IFC4X3_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4x3::IfcRelAssociatesClassification::Class() { return *IFC4X3_IfcRelAssociatesClassification_type; }
Ifc4x3::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4x3::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4x3::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -20271,7 +20271,7 @@ void Ifc4x3::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4x3::IfcCons
const IfcParse::entity& Ifc4x3::IfcRelAssociatesConstraint::declaration() const { return *IFC4X3_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4x3::IfcRelAssociatesConstraint::Class() { return *IFC4X3_IfcRelAssociatesConstraint_type; }
Ifc4x3::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4x3::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4x3::IfcDocumentSelect* Ifc4x3::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3::IfcDocumentSelect>(true); }
@@ -20281,7 +20281,7 @@ void Ifc4x3::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4x3::IfcDocument
const IfcParse::entity& Ifc4x3::IfcRelAssociatesDocument::declaration() const { return *IFC4X3_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4x3::IfcRelAssociatesDocument::Class() { return *IFC4X3_IfcRelAssociatesDocument_type; }
Ifc4x3::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4x3::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4x3::IfcLibrarySelect* Ifc4x3::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3::IfcLibrarySelect>(true); }
@@ -20291,7 +20291,7 @@ void Ifc4x3::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4x3::IfcLibrarySel
const IfcParse::entity& Ifc4x3::IfcRelAssociatesLibrary::declaration() const { return *IFC4X3_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4x3::IfcRelAssociatesLibrary::Class() { return *IFC4X3_IfcRelAssociatesLibrary_type; }
Ifc4x3::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4x3::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4x3::IfcMaterialSelect* Ifc4x3::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3::IfcMaterialSelect>(true); }
@@ -20301,7 +20301,7 @@ void Ifc4x3::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4x3::IfcMaterial
const IfcParse::entity& Ifc4x3::IfcRelAssociatesMaterial::declaration() const { return *IFC4X3_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4x3::IfcRelAssociatesMaterial::Class() { return *IFC4X3_IfcRelAssociatesMaterial_type; }
Ifc4x3::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4x3::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesProfileDef
::Ifc4x3::IfcProfileDef* Ifc4x3::IfcRelAssociatesProfileDef::RelatingProfileDef() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3::IfcProfileDef>(true); }
@@ -20311,7 +20311,7 @@ void Ifc4x3::IfcRelAssociatesProfileDef::setRelatingProfileDef(::Ifc4x3::IfcProf
const IfcParse::entity& Ifc4x3::IfcRelAssociatesProfileDef::declaration() const { return *IFC4X3_IfcRelAssociatesProfileDef_type; }
const IfcParse::entity& Ifc4x3::IfcRelAssociatesProfileDef::Class() { return *IFC4X3_IfcRelAssociatesProfileDef_type; }
Ifc4x3::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelAssociatesProfileDef_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
+Ifc4x3::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -20470,14 +20470,14 @@ Ifc4x3::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::Ifc4x3
// Function implementations for IfcRelDeclares
::Ifc4x3::IfcContext* Ifc4x3::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3::IfcContext>(true); }
void Ifc4x3::IfcRelDeclares::setRelatingContext(::Ifc4x3::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4x3::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4x3::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr Ifc4x3::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4x3::IfcDefinitionSelect >(); }
+void Ifc4x3::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4x3::IfcRelDeclares::declaration() const { return *IFC4X3_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4x3::IfcRelDeclares::Class() { return *IFC4X3_IfcRelDeclares_type; }
Ifc4x3::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4x3::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -20624,8 +20624,8 @@ Ifc4x3::IfcRelProjectsElement::IfcRelProjectsElement(IfcEntityInstanceData* e) :
Ifc4x3::IfcRelProjectsElement::IfcRelProjectsElement(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3::IfcElement* v5_RelatingElement, ::Ifc4x3::IfcFeatureElementAddition* v6_RelatedFeatureElement) : IfcRelDecomposes((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelProjectsElement_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingElement));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedFeatureElement));data_->setArgument(5,attr);} }
// Function implementations for IfcRelReferencedInSpatialStructure
-aggregate_of_instance::ptr Ifc4x3::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3::IfcSpatialReferenceSelect >::ptr Ifc4x3::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3::IfcSpatialReferenceSelect >(); }
+void Ifc4x3::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of< ::Ifc4x3::IfcSpatialReferenceSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
::Ifc4x3::IfcSpatialElement* Ifc4x3::IfcRelReferencedInSpatialStructure::RelatingStructure() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3::IfcSpatialElement>(true); }
void Ifc4x3::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4x3::IfcSpatialElement* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
@@ -20633,7 +20633,7 @@ void Ifc4x3::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4x3::
const IfcParse::entity& Ifc4x3::IfcRelReferencedInSpatialStructure::declaration() const { return *IFC4X3_IfcRelReferencedInSpatialStructure_type; }
const IfcParse::entity& Ifc4x3::IfcRelReferencedInSpatialStructure::Class() { return *IFC4X3_IfcRelReferencedInSpatialStructure_type; }
Ifc4x3::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(IfcEntityInstanceData* e) : IfcRelConnects((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcRelReferencedInSpatialStructure_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
+Ifc4x3::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
// Function implementations for IfcRelSequence
::Ifc4x3::IfcProcess* Ifc4x3::IfcRelSequence::RelatingProcess() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3::IfcProcess>(true); }
@@ -20805,8 +20805,8 @@ Ifc4x3::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((IfcEntit
Ifc4x3::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4x3::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr Ifc4x3::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3::IfcResourceObjectSelect >(); }
+void Ifc4x3::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4x3::IfcApproval* Ifc4x3::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3::IfcApproval>(true); }
void Ifc4x3::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -20814,19 +20814,19 @@ void Ifc4x3::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3::IfcA
const IfcParse::entity& Ifc4x3::IfcResourceApprovalRelationship::declaration() const { return *IFC4X3_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4x3::IfcResourceApprovalRelationship::Class() { return *IFC4X3_IfcResourceApprovalRelationship_type; }
Ifc4x3::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4x3::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4x3::IfcConstraint* Ifc4x3::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3::IfcConstraint>(true); }
void Ifc4x3::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4x3::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr Ifc4x3::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3::IfcResourceObjectSelect >(); }
+void Ifc4x3::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3::IfcResourceConstraintRelationship::declaration() const { return *IFC4X3_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4x3::IfcResourceConstraintRelationship::Class() { return *IFC4X3_IfcResourceConstraintRelationship_type; }
Ifc4x3::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4x3::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -21266,14 +21266,14 @@ Ifc4x3::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData* e)
Ifc4x3::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x3::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4x3::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4x3::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3::IfcShell >::ptr Ifc4x3::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3::IfcShell >(); }
+void Ifc4x3::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4x3::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3::IfcShellBasedSurfaceModel::declaration() const { return *IFC4X3_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4x3::IfcShellBasedSurfaceModel::Class() { return *IFC4X3_IfcShellBasedSurfaceModel_type; }
Ifc4x3::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4x3::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4x3::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSign
boost::optional< ::Ifc4x3::IfcSignTypeEnum::Value > Ifc4x3::IfcSign::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3::IfcSignTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22215,14 +22215,14 @@ Ifc4x3::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::optional
// Function implementations for IfcSurfaceStyle
::Ifc4x3::IfcSurfaceSide::Value Ifc4x3::IfcSurfaceStyle::Side() const { return ::Ifc4x3::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4x3::IfcSurfaceStyle::setSide(::Ifc4x3::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3::IfcSurfaceStyleElementSelect >::ptr Ifc4x3::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3::IfcSurfaceStyleElementSelect >(); }
+void Ifc4x3::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4x3::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4x3::IfcSurfaceStyle::declaration() const { return *IFC4X3_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4x3::IfcSurfaceStyle::Class() { return *IFC4X3_IfcSurfaceStyle_type; }
Ifc4x3::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4x3::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4x3::IfcColourRgb* Ifc4x3::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3::IfcColourRgb>(true); }
@@ -22477,8 +22477,8 @@ Ifc4x3::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil::IfcB
Ifc4x3::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4x3::IfcUnit* v4_Unit, ::Ifc4x3::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4x3::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > Ifc4x3::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3::IfcValue >(); }
+void Ifc4x3::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4x3::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4x3::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -22486,7 +22486,7 @@ void Ifc4x3::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::I
const IfcParse::entity& Ifc4x3::IfcTableRow::declaration() const { return *IFC4X3_IfcTableRow_type; }
const IfcParse::entity& Ifc4x3::IfcTableRow::Class() { return *IFC4X3_IfcTableRow_type; }
Ifc4x3::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4x3::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4x3::IfcTankTypeEnum::Value > Ifc4x3::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22939,14 +22939,14 @@ Ifc4x3::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::IfcBas
Ifc4x3::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4x3::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4x3::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4x3::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3::IfcValue >::ptr Ifc4x3::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3::IfcValue >(); }
+void Ifc4x3::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3::IfcTimeSeriesValue::declaration() const { return *IFC4X3_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3::IfcTimeSeriesValue::Class() { return *IFC4X3_IfcTimeSeriesValue_type; }
Ifc4x3::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4x3::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4x3::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -23095,10 +23095,10 @@ Ifc4x3::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::Ifc4x
// Function implementations for IfcTrimmedCurve
::Ifc4x3::IfcCurve* Ifc4x3::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3::IfcCurve>(true); }
void Ifc4x3::IfcTrimmedCurve::setBasisCurve(::Ifc4x3::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr Ifc4x3::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3::IfcTrimmingSelect >(); }
+void Ifc4x3::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr Ifc4x3::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3::IfcTrimmingSelect >(); }
+void Ifc4x3::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4x3::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4x3::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4x3::IfcTrimmingPreference::Value Ifc4x3::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x3::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -23108,7 +23108,7 @@ void Ifc4x3::IfcTrimmedCurve::setMasterRepresentation(::Ifc4x3::IfcTrimmingPrefe
const IfcParse::entity& Ifc4x3::IfcTrimmedCurve::declaration() const { return *IFC4X3_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4x3::IfcTrimmedCurve::Class() { return *IFC4X3_IfcTrimmedCurve_type; }
Ifc4x3::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4x3::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4x3::IfcTubeBundleTypeEnum::Value > Ifc4x3::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -23209,14 +23209,14 @@ Ifc4x3::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) : Ifc
Ifc4x3::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x3::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4x3::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4x3::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4x3::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3::IfcUnit >::ptr Ifc4x3::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3::IfcUnit >(); }
+void Ifc4x3::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4x3::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3::IfcUnitAssignment::declaration() const { return *IFC4X3_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4x3::IfcUnitAssignment::Class() { return *IFC4X3_IfcUnitAssignment_type; }
Ifc4x3::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4x3::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4x3::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4x3::IfcUnitaryControlElementTypeEnum::Value > Ifc4x3::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4x3.h b/src/ifcparse/Ifc4x3.h
index a02615fd24..de68722fc0 100644
--- a/src/ifcparse/Ifc4x3.h
+++ b/src/ifcparse/Ifc4x3.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,16 +201,19 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveMeasureSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveMeasureSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -212,6 +226,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -221,6 +236,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -232,6 +248,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -310,6 +327,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -322,6 +340,7 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -332,6 +351,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -341,6 +361,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -353,6 +374,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -360,11 +382,13 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
class IFC_PARSE_API IfcInterferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcInterferenceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -376,6 +400,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -390,6 +415,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -416,6 +442,7 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -446,6 +473,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -459,6 +487,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -475,6 +504,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -482,6 +512,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -489,6 +520,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -496,6 +528,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -503,6 +536,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -514,6 +548,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -528,11 +563,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -546,11 +583,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -558,6 +597,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -571,6 +611,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -578,11 +619,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -598,6 +641,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -621,6 +665,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -637,6 +682,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -648,6 +694,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -664,11 +711,13 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
class IFC_PARSE_API IfcSpatialReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpatialReferenceSelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -683,6 +732,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -696,6 +746,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -709,6 +760,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -722,6 +774,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -733,12 +786,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -746,6 +801,7 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -755,6 +811,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -772,6 +829,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -786,6 +844,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -798,6 +857,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -805,6 +865,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -11062,12 +11123,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4x3::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -11245,15 +11306,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4x3::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4x3::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4x3::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4x3::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -12045,15 +12106,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4x3::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -12090,7 +12151,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -12438,15 +12499,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4x3::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3::IfcUnit* Unit() const;
void setUnit(::Ifc4x3::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4x3::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -13370,12 +13431,12 @@ public:
::Ifc4x3::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4x3::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13684,15 +13745,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -14266,12 +14327,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4x3::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -14337,12 +14398,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4x3::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4x3::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -15356,8 +15417,8 @@ public:
::Ifc4x3::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4x3::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4x3::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -15398,7 +15459,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -15639,12 +15700,12 @@ public:
::Ifc4x3::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4x3::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15855,14 +15916,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4x3::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelOrDraughting() const;
void setModelOrDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -16016,12 +16077,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4x3::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4x3::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -18034,15 +18095,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4x3::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4x3::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -18071,12 +18132,12 @@ public:
::Ifc4x3::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4x3::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -18333,12 +18394,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4x3::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4x3::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -21258,7 +21319,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4x3::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -22405,15 +22466,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4x3::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4x3::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -22486,15 +22547,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3::IfcUnit* Unit() const;
void setUnit(::Ifc4x3::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v3_ListValues, ::Ifc4x3::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22834,13 +22895,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22858,7 +22919,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3::IfcUnit* v6_DefiningUnit, ::Ifc4x3::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3::IfcUnit* v6_DefiningUnit, ::Ifc4x3::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -23354,12 +23415,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -23373,7 +23434,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -23414,7 +23475,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -23431,7 +23492,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -23449,7 +23510,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -23467,7 +23528,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -23572,7 +23633,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
@@ -23583,7 +23644,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesProfileDef (IfcEntityInstanceData* e);
- IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3::IfcProfileDef* v6_RelatingProfileDef);
+ IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3::IfcProfileDef* v6_RelatingProfileDef);
typedef aggregate_of< IfcRelAssociatesProfileDef > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -24056,12 +24117,12 @@ public:
::Ifc4x3::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4x3::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -24576,8 +24637,8 @@ class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects
public:
/// Set of products, which are referenced within this level of the spatial structure hierarchy.
/// NOTEÂ Referenced elements are contained elsewhere within the spatial structure, they are referenced additionally by this spatial structure element, e.g., because they span several stories.
- aggregate_of_instance::ptr RelatedElements() const;
- void setRelatedElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcSpatialReferenceSelect >::ptr RelatedElements() const;
+ void setRelatedElements(aggregate_of< ::Ifc4x3::IfcSpatialReferenceSelect >::ptr v);
/// Spatial structure element, within which the element is referenced. Any element can be contained within zero, one or many elements of the project spatial and zoning structure.
///
/// IFC2x Edition 4 CHANGEÂ The attribute relatingStructure as been promoted to the new supertype IfcSpatialElement with upward compatibility for file based exchange.
@@ -24586,7 +24647,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelReferencedInSpatialStructure (IfcEntityInstanceData* e);
- IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3::IfcSpatialElement* v6_RelatingStructure);
+ IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3::IfcSpatialElement* v6_RelatingStructure);
typedef aggregate_of< IfcRelReferencedInSpatialStructure > list;
};
/// IfcRelSequence is a
@@ -31117,14 +31178,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4x3::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4x3::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4x3::IfcSegmentIndexSelect >::ptr > v);
boost::logic::tribool SelfIntersect() const;
void setSelfIntersect(boost::logic::tribool v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4x3::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::logic::tribool v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4x3::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::logic::tribool v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -33156,12 +33217,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
@@ -35458,11 +35519,11 @@ public:
::Ifc4x3::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4x3::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -35472,7 +35533,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4x3::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4x3::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -43524,12 +43585,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4x3::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/Ifc4x3_add1-definitions.h b/src/ifcparse/Ifc4x3_add1-definitions.h
index 9edba44aec..2ff7176188 100644
--- a/src/ifcparse/Ifc4x3_add1-definitions.h
+++ b/src/ifcparse/Ifc4x3_add1-definitions.h
@@ -4043,3 +4043,53 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSIUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointDim
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcSegmentDim
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4x3_add1.cpp b/src/ifcparse/Ifc4x3_add1.cpp
index a30b67c589..e10f88a5ee 100644
--- a/src/ifcparse/Ifc4x3_add1.cpp
+++ b/src/ifcparse/Ifc4x3_add1.cpp
@@ -15569,8 +15569,8 @@ boost::optional< std::string > Ifc4x3_add1::IfcDocumentInformation::Revision() c
void Ifc4x3_add1::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4x3_add1::IfcActorSelect* Ifc4x3_add1::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4x3_add1::IfcActorSelect>(true); }
void Ifc4x3_add1::IfcDocumentInformation::setDocumentOwner(::Ifc4x3_add1::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_add1::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4x3_add1::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_add1::IfcActorSelect >::ptr > Ifc4x3_add1::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4x3_add1::IfcActorSelect >(); }
+void Ifc4x3_add1::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4x3_add1::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4x3_add1::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4x3_add1::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -15594,7 +15594,7 @@ void Ifc4x3_add1::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4x3_ad
const IfcParse::entity& Ifc4x3_add1::IfcDocumentInformation::declaration() const { return *IFC4X3_ADD1_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4x3_add1::IfcDocumentInformation::Class() { return *IFC4X3_ADD1_IfcDocumentInformation_type; }
Ifc4x3_add1::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_add1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_add1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_add1::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_add1::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_add1::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4x3_add1::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_add1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_add1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_add1::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_add1::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_add1::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4x3_add1::IfcDocumentInformation* Ifc4x3_add1::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_add1::IfcDocumentInformation>(true); }
@@ -16265,14 +16265,14 @@ Ifc4x3_add1::IfcExternalReference::IfcExternalReference(boost::optional< std::st
// Function implementations for IfcExternalReferenceRelationship
::Ifc4x3_add1::IfcExternalReference* Ifc4x3_add1::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_add1::IfcExternalReference>(true); }
void Ifc4x3_add1::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4x3_add1::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_add1::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_add1::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr Ifc4x3_add1::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_add1::IfcResourceObjectSelect >(); }
+void Ifc4x3_add1::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcExternalReferenceRelationship::declaration() const { return *IFC4X3_ADD1_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4x3_add1::IfcExternalReferenceRelationship::Class() { return *IFC4X3_ADD1_IfcExternalReferenceRelationship_type; }
Ifc4x3_add1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_add1::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_add1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_add1::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4x3_add1::IfcExternalSpatialElementTypeEnum::Value > Ifc4x3_add1::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_add1::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -16525,8 +16525,8 @@ Ifc4x3_add1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntit
Ifc4x3_add1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_add1::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_add1::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4x3_add1::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_add1::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcFillStyleSelect >::ptr Ifc4x3_add1::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_add1::IfcFillStyleSelect >(); }
+void Ifc4x3_add1::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4x3_add1::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_add1::IfcFillAreaStyle::ModelOrDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_add1::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -16534,7 +16534,7 @@ void Ifc4x3_add1::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool >
const IfcParse::entity& Ifc4x3_add1::IfcFillAreaStyle::declaration() const { return *IFC4X3_ADD1_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4x3_add1::IfcFillAreaStyle::Class() { return *IFC4X3_ADD1_IfcFillAreaStyle_type; }
Ifc4x3_add1::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_add1::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_add1::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4x3_add1::IfcCurveStyle* Ifc4x3_add1::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_add1::IfcCurveStyle>(true); }
@@ -16868,7 +16868,7 @@ Ifc4x3_add1::IfcGeographicElementType::IfcGeographicElementType(std::string v1_G
const IfcParse::entity& Ifc4x3_add1::IfcGeometricCurveSet::declaration() const { return *IFC4X3_ADD1_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4x3_add1::IfcGeometricCurveSet::Class() { return *IFC4X3_ADD1_IfcGeometricCurveSet_type; }
Ifc4x3_add1::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_add1::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4x3_add1::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4x3_add1::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -16913,14 +16913,14 @@ Ifc4x3_add1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSub
Ifc4x3_add1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4x3_add1::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4x3_add1::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4x3_add1::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4x3_add1::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_add1::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcGeometricSetSelect >::ptr Ifc4x3_add1::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_add1::IfcGeometricSetSelect >(); }
+void Ifc4x3_add1::IfcGeometricSet::setElements(aggregate_of< ::Ifc4x3_add1::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcGeometricSet::declaration() const { return *IFC4X3_ADD1_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4x3_add1::IfcGeometricSet::Class() { return *IFC4X3_ADD1_IfcGeometricSet_type; }
Ifc4x3_add1::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_add1::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4x3_add1::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeomodel
@@ -17155,8 +17155,8 @@ Ifc4x3_add1::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x3_add1::IfcTessella
// Function implementations for IfcIndexedPolyCurve
::Ifc4x3_add1::IfcCartesianPointList* Ifc4x3_add1::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_add1::IfcCartesianPointList>(true); }
void Ifc4x3_add1::IfcIndexedPolyCurve::setPoints(::Ifc4x3_add1::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_add1::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_add1::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_add1::IfcSegmentIndexSelect >::ptr > Ifc4x3_add1::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_add1::IfcSegmentIndexSelect >(); }
+void Ifc4x3_add1::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_add1::IfcIndexedPolyCurve::SelfIntersect() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_add1::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -17164,7 +17164,7 @@ void Ifc4x3_add1::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool >
const IfcParse::entity& Ifc4x3_add1::IfcIndexedPolyCurve::declaration() const { return *IFC4X3_ADD1_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4x3_add1::IfcIndexedPolyCurve::Class() { return *IFC4X3_ADD1_IfcIndexedPolyCurve_type; }
Ifc4x3_add1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_add1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_add1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_add1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4x3_add1::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -17281,14 +17281,14 @@ Ifc4x3_add1::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name,
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4x3_add1::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_add1::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_add1::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_add1::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr Ifc4x3_add1::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_add1::IfcValue >(); }
+void Ifc4x3_add1::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4X3_ADD1_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_add1::IfcIrregularTimeSeriesValue::Class() { return *IFC4X3_ADD1_IfcIrregularTimeSeriesValue_type; }
Ifc4x3_add1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4x3_add1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4x3_add1::IfcJunctionBoxTypeEnum::Value > Ifc4x3_add1::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_add1::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -17745,8 +17745,8 @@ Ifc4x3_add1::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDef
Ifc4x3_add1::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4x3_add1::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_add1::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcClassificationSelect >::ptr Ifc4x3_add1::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_add1::IfcClassificationSelect >(); }
+void Ifc4x3_add1::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4x3_add1::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4x3_add1::IfcMaterial* Ifc4x3_add1::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4x3_add1::IfcMaterial>(true); }
void Ifc4x3_add1::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4x3_add1::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -17754,7 +17754,7 @@ void Ifc4x3_add1::IfcMaterialClassificationRelationship::setClassifiedMaterial(:
const IfcParse::entity& Ifc4x3_add1::IfcMaterialClassificationRelationship::declaration() const { return *IFC4X3_ADD1_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4x3_add1::IfcMaterialClassificationRelationship::Class() { return *IFC4X3_ADD1_IfcMaterialClassificationRelationship_type; }
Ifc4x3_add1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_add1::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4x3_add1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4x3_add1::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_add1::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4x3_add1::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -18981,8 +18981,8 @@ std::string Ifc4x3_add1::IfcPresentationLayerAssignment::Name() const { std::st
void Ifc4x3_add1::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4x3_add1::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4x3_add1::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_add1::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_add1::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcLayeredItem >::ptr Ifc4x3_add1::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_add1::IfcLayeredItem >(); }
+void Ifc4x3_add1::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4x3_add1::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4x3_add1::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4x3_add1::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -18990,7 +18990,7 @@ void Ifc4x3_add1::IfcPresentationLayerAssignment::setIdentifier(boost::optional<
const IfcParse::entity& Ifc4x3_add1::IfcPresentationLayerAssignment::declaration() const { return *IFC4X3_ADD1_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4x3_add1::IfcPresentationLayerAssignment::Class() { return *IFC4X3_ADD1_IfcPresentationLayerAssignment_type; }
Ifc4x3_add1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4x3_add1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_add1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4x3_add1::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -19006,7 +19006,7 @@ void Ifc4x3_add1::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::
const IfcParse::entity& Ifc4x3_add1::IfcPresentationLayerWithStyle::declaration() const { return *IFC4X3_ADD1_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4x3_add1::IfcPresentationLayerWithStyle::Class() { return *IFC4X3_ADD1_IfcPresentationLayerWithStyle_type; }
Ifc4x3_add1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_add1::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4x3_add1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_add1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_add1::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4x3_add1::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19242,8 +19242,8 @@ Ifc4x3_add1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationshi
Ifc4x3_add1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_add1::IfcProperty* v3_DependingProperty, ::Ifc4x3_add1::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_add1::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_add1::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > Ifc4x3_add1::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_add1::IfcValue >(); }
+void Ifc4x3_add1::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_add1::IfcPropertyEnumeration* Ifc4x3_add1::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_add1::IfcPropertyEnumeration>(true); }
void Ifc4x3_add1::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_add1::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19251,13 +19251,13 @@ void Ifc4x3_add1::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_a
const IfcParse::entity& Ifc4x3_add1::IfcPropertyEnumeratedValue::declaration() const { return *IFC4X3_ADD1_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4x3_add1::IfcPropertyEnumeratedValue::Class() { return *IFC4X3_ADD1_IfcPropertyEnumeratedValue_type; }
Ifc4x3_add1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_add1::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4x3_add1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_add1::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4x3_add1::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_add1::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_add1::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_add1::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr Ifc4x3_add1::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_add1::IfcValue >(); }
+void Ifc4x3_add1::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4x3_add1::IfcUnit* Ifc4x3_add1::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_add1::IfcUnit>(true); }
void Ifc4x3_add1::IfcPropertyEnumeration::setUnit(::Ifc4x3_add1::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -19265,11 +19265,11 @@ void Ifc4x3_add1::IfcPropertyEnumeration::setUnit(::Ifc4x3_add1::IfcUnit* v) { {
const IfcParse::entity& Ifc4x3_add1::IfcPropertyEnumeration::declaration() const { return *IFC4X3_ADD1_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4x3_add1::IfcPropertyEnumeration::Class() { return *IFC4X3_ADD1_IfcPropertyEnumeration_type; }
Ifc4x3_add1::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_add1::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4x3_add1::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_add1::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_add1::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_add1::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > Ifc4x3_add1::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_add1::IfcValue >(); }
+void Ifc4x3_add1::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_add1::IfcUnit* Ifc4x3_add1::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_add1::IfcUnit>(true); }
void Ifc4x3_add1::IfcPropertyListValue::setUnit(::Ifc4x3_add1::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19277,7 +19277,7 @@ void Ifc4x3_add1::IfcPropertyListValue::setUnit(::Ifc4x3_add1::IfcUnit* v) { {If
const IfcParse::entity& Ifc4x3_add1::IfcPropertyListValue::declaration() const { return *IFC4X3_ADD1_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4x3_add1::IfcPropertyListValue::Class() { return *IFC4X3_ADD1_IfcPropertyListValue_type; }
Ifc4x3_add1::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_add1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4x3_add1::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_add1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4x3_add1::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -19340,10 +19340,10 @@ Ifc4x3_add1::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceDat
Ifc4x3_add1::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Specification, ::Ifc4x3_add1::IfcValue* v3_NominalValue, ::Ifc4x3_add1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_add1::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_add1::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_add1::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_add1::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > Ifc4x3_add1::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_add1::IfcValue >(); }
+void Ifc4x3_add1::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > Ifc4x3_add1::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_add1::IfcValue >(); }
+void Ifc4x3_add1::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4x3_add1::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4x3_add1::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4x3_add1::IfcUnit* Ifc4x3_add1::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_add1::IfcUnit>(true); }
@@ -19357,7 +19357,7 @@ void Ifc4x3_add1::IfcPropertyTableValue::setCurveInterpolation(boost::optional<
const IfcParse::entity& Ifc4x3_add1::IfcPropertyTableValue::declaration() const { return *IFC4X3_ADD1_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4x3_add1::IfcPropertyTableValue::Class() { return *IFC4X3_ADD1_IfcPropertyTableValue_type; }
Ifc4x3_add1::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_add1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_add1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_add1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_add1::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4x3_add1::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_add1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_add1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_add1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_add1::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -19848,14 +19848,14 @@ boost::optional< ::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3_add
void Ifc4x3_add1::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4x3_add1::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4x3_add1::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_add1::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4x3_add1::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > Ifc4x3_add1::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4x3_add1::IfcBendingParameterSelect >(); }
+void Ifc4x3_add1::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcReinforcingBarType::declaration() const { return *IFC4X3_ADD1_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4x3_add1::IfcReinforcingBarType::Class() { return *IFC4X3_ADD1_IfcReinforcingBarType_type; }
Ifc4x3_add1::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_add1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_add1::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4x3_add1::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_add1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_add1::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4x3_add1::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -19922,14 +19922,14 @@ boost::optional< double > Ifc4x3_add1::IfcReinforcingMeshType::TransverseBarSpac
void Ifc4x3_add1::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4x3_add1::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4x3_add1::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_add1::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4x3_add1::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > Ifc4x3_add1::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4x3_add1::IfcBendingParameterSelect >(); }
+void Ifc4x3_add1::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcReinforcingMeshType::declaration() const { return *IFC4X3_ADD1_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4x3_add1::IfcReinforcingMeshType::Class() { return *IFC4X3_ADD1_IfcReinforcingMeshType_type; }
Ifc4x3_add1::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_add1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_add1::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4x3_add1::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_add1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_add1::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAdheresToElement
::Ifc4x3_add1::IfcElement* Ifc4x3_add1::IfcRelAdheresToElement::RelatingElement() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_add1::IfcElement>(true); }
@@ -20042,14 +20042,14 @@ Ifc4x3_add1::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceD
Ifc4x3_add1::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< bool > v6_RelatedObjectsType, ::Ifc4x3_add1::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_RelatedObjectsType));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4x3_add1::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_add1::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr Ifc4x3_add1::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_add1::IfcDefinitionSelect >(); }
+void Ifc4x3_add1::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociates::declaration() const { return *IFC4X3_ADD1_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociates::Class() { return *IFC4X3_ADD1_IfcRelAssociates_type; }
Ifc4x3_add1::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4x3_add1::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4x3_add1::IfcApproval* Ifc4x3_add1::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_add1::IfcApproval>(true); }
@@ -20059,7 +20059,7 @@ void Ifc4x3_add1::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4x3_add1::I
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesApproval::declaration() const { return *IFC4X3_ADD1_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesApproval::Class() { return *IFC4X3_ADD1_IfcRelAssociatesApproval_type; }
Ifc4x3_add1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4x3_add1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4x3_add1::IfcClassificationSelect* Ifc4x3_add1::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_add1::IfcClassificationSelect>(true); }
@@ -20069,7 +20069,7 @@ void Ifc4x3_add1::IfcRelAssociatesClassification::setRelatingClassification(::If
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesClassification::declaration() const { return *IFC4X3_ADD1_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesClassification::Class() { return *IFC4X3_ADD1_IfcRelAssociatesClassification_type; }
Ifc4x3_add1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4x3_add1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4x3_add1::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -20081,7 +20081,7 @@ void Ifc4x3_add1::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4x3_add
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesConstraint::declaration() const { return *IFC4X3_ADD1_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesConstraint::Class() { return *IFC4X3_ADD1_IfcRelAssociatesConstraint_type; }
Ifc4x3_add1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_add1::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4x3_add1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_add1::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4x3_add1::IfcDocumentSelect* Ifc4x3_add1::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_add1::IfcDocumentSelect>(true); }
@@ -20091,7 +20091,7 @@ void Ifc4x3_add1::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4x3_add1::I
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesDocument::declaration() const { return *IFC4X3_ADD1_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesDocument::Class() { return *IFC4X3_ADD1_IfcRelAssociatesDocument_type; }
Ifc4x3_add1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4x3_add1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4x3_add1::IfcLibrarySelect* Ifc4x3_add1::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_add1::IfcLibrarySelect>(true); }
@@ -20101,7 +20101,7 @@ void Ifc4x3_add1::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4x3_add1::Ifc
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesLibrary::declaration() const { return *IFC4X3_ADD1_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesLibrary::Class() { return *IFC4X3_ADD1_IfcRelAssociatesLibrary_type; }
Ifc4x3_add1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4x3_add1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4x3_add1::IfcMaterialSelect* Ifc4x3_add1::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_add1::IfcMaterialSelect>(true); }
@@ -20111,7 +20111,7 @@ void Ifc4x3_add1::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4x3_add1::I
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesMaterial::declaration() const { return *IFC4X3_ADD1_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesMaterial::Class() { return *IFC4X3_ADD1_IfcRelAssociatesMaterial_type; }
Ifc4x3_add1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4x3_add1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesProfileDef
::Ifc4x3_add1::IfcProfileDef* Ifc4x3_add1::IfcRelAssociatesProfileDef::RelatingProfileDef() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_add1::IfcProfileDef>(true); }
@@ -20121,7 +20121,7 @@ void Ifc4x3_add1::IfcRelAssociatesProfileDef::setRelatingProfileDef(::Ifc4x3_add
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesProfileDef::declaration() const { return *IFC4X3_ADD1_IfcRelAssociatesProfileDef_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelAssociatesProfileDef::Class() { return *IFC4X3_ADD1_IfcRelAssociatesProfileDef_type; }
Ifc4x3_add1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelAssociatesProfileDef_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
+Ifc4x3_add1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -20280,14 +20280,14 @@ Ifc4x3_add1::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::I
// Function implementations for IfcRelDeclares
::Ifc4x3_add1::IfcContext* Ifc4x3_add1::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_add1::IfcContext>(true); }
void Ifc4x3_add1::IfcRelDeclares::setRelatingContext(::Ifc4x3_add1::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4x3_add1::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4x3_add1::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr Ifc4x3_add1::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4x3_add1::IfcDefinitionSelect >(); }
+void Ifc4x3_add1::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcRelDeclares::declaration() const { return *IFC4X3_ADD1_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelDeclares::Class() { return *IFC4X3_ADD1_IfcRelDeclares_type; }
Ifc4x3_add1::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_add1::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4x3_add1::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_add1::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -20434,8 +20434,8 @@ Ifc4x3_add1::IfcRelProjectsElement::IfcRelProjectsElement(IfcEntityInstanceData*
Ifc4x3_add1::IfcRelProjectsElement::IfcRelProjectsElement(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_add1::IfcElement* v5_RelatingElement, ::Ifc4x3_add1::IfcFeatureElementAddition* v6_RelatedFeatureElement) : IfcRelDecomposes((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelProjectsElement_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingElement));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedFeatureElement));data_->setArgument(5,attr);} }
// Function implementations for IfcRelReferencedInSpatialStructure
-aggregate_of_instance::ptr Ifc4x3_add1::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_add1::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcSpatialReferenceSelect >::ptr Ifc4x3_add1::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_add1::IfcSpatialReferenceSelect >(); }
+void Ifc4x3_add1::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of< ::Ifc4x3_add1::IfcSpatialReferenceSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
::Ifc4x3_add1::IfcSpatialElement* Ifc4x3_add1::IfcRelReferencedInSpatialStructure::RelatingStructure() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_add1::IfcSpatialElement>(true); }
void Ifc4x3_add1::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4x3_add1::IfcSpatialElement* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
@@ -20443,7 +20443,7 @@ void Ifc4x3_add1::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc
const IfcParse::entity& Ifc4x3_add1::IfcRelReferencedInSpatialStructure::declaration() const { return *IFC4X3_ADD1_IfcRelReferencedInSpatialStructure_type; }
const IfcParse::entity& Ifc4x3_add1::IfcRelReferencedInSpatialStructure::Class() { return *IFC4X3_ADD1_IfcRelReferencedInSpatialStructure_type; }
Ifc4x3_add1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(IfcEntityInstanceData* e) : IfcRelConnects((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcRelReferencedInSpatialStructure_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_add1::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
+Ifc4x3_add1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_add1::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
// Function implementations for IfcRelSequence
::Ifc4x3_add1::IfcProcess* Ifc4x3_add1::IfcRelSequence::RelatingProcess() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_add1::IfcProcess>(true); }
@@ -20615,8 +20615,8 @@ Ifc4x3_add1::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((Ifc
Ifc4x3_add1::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4x3_add1::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_add1::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr Ifc4x3_add1::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_add1::IfcResourceObjectSelect >(); }
+void Ifc4x3_add1::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4x3_add1::IfcApproval* Ifc4x3_add1::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_add1::IfcApproval>(true); }
void Ifc4x3_add1::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_add1::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -20624,19 +20624,19 @@ void Ifc4x3_add1::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_
const IfcParse::entity& Ifc4x3_add1::IfcResourceApprovalRelationship::declaration() const { return *IFC4X3_ADD1_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4x3_add1::IfcResourceApprovalRelationship::Class() { return *IFC4X3_ADD1_IfcResourceApprovalRelationship_type; }
Ifc4x3_add1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_add1::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4x3_add1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_add1::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4x3_add1::IfcConstraint* Ifc4x3_add1::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_add1::IfcConstraint>(true); }
void Ifc4x3_add1::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4x3_add1::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_add1::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_add1::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr Ifc4x3_add1::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_add1::IfcResourceObjectSelect >(); }
+void Ifc4x3_add1::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcResourceConstraintRelationship::declaration() const { return *IFC4X3_ADD1_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4x3_add1::IfcResourceConstraintRelationship::Class() { return *IFC4X3_ADD1_IfcResourceConstraintRelationship_type; }
Ifc4x3_add1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_add1::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_add1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_add1::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4x3_add1::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -21090,14 +21090,14 @@ Ifc4x3_add1::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceDat
Ifc4x3_add1::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x3_add1::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4x3_add1::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4x3_add1::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_add1::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcShell >::ptr Ifc4x3_add1::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_add1::IfcShell >(); }
+void Ifc4x3_add1::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4x3_add1::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcShellBasedSurfaceModel::declaration() const { return *IFC4X3_ADD1_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4x3_add1::IfcShellBasedSurfaceModel::Class() { return *IFC4X3_ADD1_IfcShellBasedSurfaceModel_type; }
Ifc4x3_add1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4x3_add1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4x3_add1::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSign
boost::optional< ::Ifc4x3_add1::IfcSignTypeEnum::Value > Ifc4x3_add1::IfcSign::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_add1::IfcSignTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22039,14 +22039,14 @@ Ifc4x3_add1::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::opt
// Function implementations for IfcSurfaceStyle
::Ifc4x3_add1::IfcSurfaceSide::Value Ifc4x3_add1::IfcSurfaceStyle::Side() const { return ::Ifc4x3_add1::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4x3_add1::IfcSurfaceStyle::setSide(::Ifc4x3_add1::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_add1::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_add1::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_add1::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcSurfaceStyleElementSelect >::ptr Ifc4x3_add1::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_add1::IfcSurfaceStyleElementSelect >(); }
+void Ifc4x3_add1::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4x3_add1::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcSurfaceStyle::declaration() const { return *IFC4X3_ADD1_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4x3_add1::IfcSurfaceStyle::Class() { return *IFC4X3_ADD1_IfcSurfaceStyle_type; }
Ifc4x3_add1::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_add1::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_add1::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4x3_add1::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_add1::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_add1::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_add1::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4x3_add1::IfcColourRgb* Ifc4x3_add1::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_add1::IfcColourRgb>(true); }
@@ -22301,8 +22301,8 @@ Ifc4x3_add1::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil:
Ifc4x3_add1::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4x3_add1::IfcUnit* v4_Unit, ::Ifc4x3_add1::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_add1::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_add1::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > Ifc4x3_add1::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_add1::IfcValue >(); }
+void Ifc4x3_add1::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4x3_add1::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4x3_add1::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -22310,7 +22310,7 @@ void Ifc4x3_add1::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWri
const IfcParse::entity& Ifc4x3_add1::IfcTableRow::declaration() const { return *IFC4X3_ADD1_IfcTableRow_type; }
const IfcParse::entity& Ifc4x3_add1::IfcTableRow::Class() { return *IFC4X3_ADD1_IfcTableRow_type; }
Ifc4x3_add1::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4x3_add1::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4x3_add1::IfcTankTypeEnum::Value > Ifc4x3_add1::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_add1::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22761,14 +22761,14 @@ Ifc4x3_add1::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::I
Ifc4x3_add1::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3_add1::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3_add1::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3_add1::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4x3_add1::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4x3_add1::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4x3_add1::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_add1::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr Ifc4x3_add1::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_add1::IfcValue >(); }
+void Ifc4x3_add1::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcTimeSeriesValue::declaration() const { return *IFC4X3_ADD1_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_add1::IfcTimeSeriesValue::Class() { return *IFC4X3_ADD1_IfcTimeSeriesValue_type; }
Ifc4x3_add1::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4x3_add1::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -22919,10 +22919,10 @@ Ifc4x3_add1::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::
// Function implementations for IfcTrimmedCurve
::Ifc4x3_add1::IfcCurve* Ifc4x3_add1::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_add1::IfcCurve>(true); }
void Ifc4x3_add1::IfcTrimmedCurve::setBasisCurve(::Ifc4x3_add1::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_add1::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_add1::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_add1::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_add1::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr Ifc4x3_add1::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_add1::IfcTrimmingSelect >(); }
+void Ifc4x3_add1::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr Ifc4x3_add1::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_add1::IfcTrimmingSelect >(); }
+void Ifc4x3_add1::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4x3_add1::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4x3_add1::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4x3_add1::IfcTrimmingPreference::Value Ifc4x3_add1::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x3_add1::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -22932,7 +22932,7 @@ void Ifc4x3_add1::IfcTrimmedCurve::setMasterRepresentation(::Ifc4x3_add1::IfcTri
const IfcParse::entity& Ifc4x3_add1::IfcTrimmedCurve::declaration() const { return *IFC4X3_ADD1_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4x3_add1::IfcTrimmedCurve::Class() { return *IFC4X3_ADD1_IfcTrimmedCurve_type; }
Ifc4x3_add1::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_add1::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_add1::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_add1::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4x3_add1::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_add1::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_add1::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_add1::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4x3_add1::IfcTubeBundleTypeEnum::Value > Ifc4x3_add1::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_add1::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -23033,14 +23033,14 @@ Ifc4x3_add1::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e)
Ifc4x3_add1::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x3_add1::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4x3_add1::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4x3_add1::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4x3_add1::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_add1::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_add1::IfcUnit >::ptr Ifc4x3_add1::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_add1::IfcUnit >(); }
+void Ifc4x3_add1::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4x3_add1::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_add1::IfcUnitAssignment::declaration() const { return *IFC4X3_ADD1_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4x3_add1::IfcUnitAssignment::Class() { return *IFC4X3_ADD1_IfcUnitAssignment_type; }
Ifc4x3_add1::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_ADD1_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_add1::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4x3_add1::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4x3_add1::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_ADD1_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4x3_add1::IfcUnitaryControlElementTypeEnum::Value > Ifc4x3_add1::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_add1::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4x3_add1.h b/src/ifcparse/Ifc4x3_add1.h
index cb9dfca46f..a92381f7c3 100644
--- a/src/ifcparse/Ifc4x3_add1.h
+++ b/src/ifcparse/Ifc4x3_add1.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,16 +201,19 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveMeasureSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveMeasureSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -212,6 +226,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -221,6 +236,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -232,6 +248,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -310,6 +327,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -322,6 +340,7 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -332,6 +351,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -341,6 +361,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -353,6 +374,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -360,11 +382,13 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
class IFC_PARSE_API IfcInterferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcInterferenceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -376,6 +400,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -390,6 +415,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -416,6 +442,7 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -446,6 +473,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -459,6 +487,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -475,6 +504,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -482,6 +512,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -489,6 +520,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -496,6 +528,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -503,6 +536,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -514,6 +548,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -528,11 +563,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -546,11 +583,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -558,6 +597,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -571,6 +611,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -578,11 +619,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -598,6 +641,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -621,6 +665,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -637,6 +682,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -648,6 +694,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -664,11 +711,13 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
class IFC_PARSE_API IfcSpatialReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpatialReferenceSelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -683,6 +732,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -696,6 +746,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -709,6 +760,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -722,6 +774,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -733,12 +786,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -746,6 +801,7 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -755,6 +811,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -772,6 +829,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -786,6 +844,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -798,6 +857,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -805,6 +865,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -10758,12 +10819,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -10952,15 +11013,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4x3_add1::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4x3_add1::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4x3_add1::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_add1::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4x3_add1::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_add1::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -11752,15 +11813,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4x3_add1::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_add1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -11797,7 +11858,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_add1::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_add1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_add1::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -12149,15 +12210,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_add1::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_add1::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_add1::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_add1::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -13096,12 +13157,12 @@ public:
::Ifc4x3_add1::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4x3_add1::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_add1::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_add1::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_add1::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_add1::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13410,15 +13471,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -13992,12 +14053,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -14063,12 +14124,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4x3_add1::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4x3_add1::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -15095,8 +15156,8 @@ public:
::Ifc4x3_add1::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4x3_add1::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_add1::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -15137,7 +15198,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_add1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_add1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_add1::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_add1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_add1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_add1::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -15378,12 +15439,12 @@ public:
::Ifc4x3_add1::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4x3_add1::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_add1::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_add1::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15594,14 +15655,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4x3_add1::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelOrDraughting() const;
void setModelOrDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_add1::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -15755,12 +15816,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4x3_add1::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4x3_add1::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -17773,15 +17834,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4x3_add1::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4x3_add1::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_add1::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_add1::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -17810,12 +17871,12 @@ public:
::Ifc4x3_add1::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4x3_add1::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_add1::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_add1::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_add1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -18072,12 +18133,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4x3_add1::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4x3_add1::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -20997,7 +21058,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4x3_add1::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -22144,15 +22205,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4x3_add1::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4x3_add1::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_add1::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_add1::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -22225,15 +22286,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_add1::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_add1::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_add1::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_add1::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22573,13 +22634,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22597,7 +22658,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_add1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_add1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_add1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_add1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_add1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_add1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -23093,12 +23154,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -23112,7 +23173,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -23153,7 +23214,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -23170,7 +23231,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_add1::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_add1::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -23188,7 +23249,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -23206,7 +23267,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -23311,7 +23372,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
@@ -23322,7 +23383,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesProfileDef (IfcEntityInstanceData* e);
- IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcProfileDef* v6_RelatingProfileDef);
+ IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_add1::IfcProfileDef* v6_RelatingProfileDef);
typedef aggregate_of< IfcRelAssociatesProfileDef > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -23795,12 +23856,12 @@ public:
::Ifc4x3_add1::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4x3_add1::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_add1::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_add1::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_add1::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -24315,8 +24376,8 @@ class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects
public:
/// Set of products, which are referenced within this level of the spatial structure hierarchy.
/// NOTEÂ Referenced elements are contained elsewhere within the spatial structure, they are referenced additionally by this spatial structure element, e.g., because they span several stories.
- aggregate_of_instance::ptr RelatedElements() const;
- void setRelatedElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcSpatialReferenceSelect >::ptr RelatedElements() const;
+ void setRelatedElements(aggregate_of< ::Ifc4x3_add1::IfcSpatialReferenceSelect >::ptr v);
/// Spatial structure element, within which the element is referenced. Any element can be contained within zero, one or many elements of the project spatial and zoning structure.
///
/// IFC2x Edition 4 CHANGEÂ The attribute relatingStructure as been promoted to the new supertype IfcSpatialElement with upward compatibility for file based exchange.
@@ -24325,7 +24386,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelReferencedInSpatialStructure (IfcEntityInstanceData* e);
- IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_add1::IfcSpatialElement* v6_RelatingStructure);
+ IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_add1::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_add1::IfcSpatialElement* v6_RelatingStructure);
typedef aggregate_of< IfcRelReferencedInSpatialStructure > list;
};
/// IfcRelSequence is a
@@ -30856,14 +30917,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4x3_add1::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4x3_add1::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_add1::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcSegmentIndexSelect >::ptr > v);
boost::optional< bool > SelfIntersect() const;
void setSelfIntersect(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4x3_add1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4x3_add1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -32897,12 +32958,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_add1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_add1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
@@ -35199,11 +35260,11 @@ public:
::Ifc4x3_add1::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4x3_add1::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -35213,7 +35274,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4x3_add1::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_add1::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4x3_add1::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_add1::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_add1::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -43265,12 +43326,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_add1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_add1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_add1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_add1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_add1::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/Ifc4x3_rc1-definitions.h b/src/ifcparse/Ifc4x3_rc1-definitions.h
index 61659835ce..0819fb4cb2 100644
--- a/src/ifcparse/Ifc4x3_rc1-definitions.h
+++ b/src/ifcparse/Ifc4x3_rc1-definitions.h
@@ -4000,3 +4000,52 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectObjectAssignment
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSiUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4x3_rc1.cpp b/src/ifcparse/Ifc4x3_rc1.cpp
index 03437fc88e..ffe2b1022b 100644
--- a/src/ifcparse/Ifc4x3_rc1.cpp
+++ b/src/ifcparse/Ifc4x3_rc1.cpp
@@ -15615,8 +15615,8 @@ boost::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::Revision() co
void Ifc4x3_rc1::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4x3_rc1::IfcActorSelect* Ifc4x3_rc1::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4x3_rc1::IfcActorSelect>(true); }
void Ifc4x3_rc1::IfcDocumentInformation::setDocumentOwner(::Ifc4x3_rc1::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc1::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4x3_rc1::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcActorSelect >::ptr > Ifc4x3_rc1::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4x3_rc1::IfcActorSelect >(); }
+void Ifc4x3_rc1::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4x3_rc1::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4x3_rc1::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -15640,7 +15640,7 @@ void Ifc4x3_rc1::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4x3_rc1
const IfcParse::entity& Ifc4x3_rc1::IfcDocumentInformation::declaration() const { return *IFC4X3_RC1_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcDocumentInformation::Class() { return *IFC4X3_RC1_IfcDocumentInformation_type; }
Ifc4x3_rc1::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc1::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_rc1::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4x3_rc1::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc1::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_rc1::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4x3_rc1::IfcDocumentInformation* Ifc4x3_rc1::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc1::IfcDocumentInformation>(true); }
@@ -16334,14 +16334,14 @@ Ifc4x3_rc1::IfcExternalReference::IfcExternalReference(boost::optional< std::str
// Function implementations for IfcExternalReferenceRelationship
::Ifc4x3_rc1::IfcExternalReference* Ifc4x3_rc1::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc1::IfcExternalReference>(true); }
void Ifc4x3_rc1::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4x3_rc1::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc1::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr Ifc4x3_rc1::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc1::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc1::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcExternalReferenceRelationship::declaration() const { return *IFC4X3_RC1_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcExternalReferenceRelationship::Class() { return *IFC4X3_RC1_IfcExternalReferenceRelationship_type; }
Ifc4x3_rc1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_rc1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::Value > Ifc4x3_rc1::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc1::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -16586,8 +16586,8 @@ Ifc4x3_rc1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntity
Ifc4x3_rc1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc1::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc1::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc1::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcFillStyleSelect >::ptr Ifc4x3_rc1::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc1::IfcFillStyleSelect >(); }
+void Ifc4x3_rc1::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4x3_rc1::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_rc1::IfcFillAreaStyle::ModelorDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_rc1::IfcFillAreaStyle::setModelorDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -16595,7 +16595,7 @@ void Ifc4x3_rc1::IfcFillAreaStyle::setModelorDraughting(boost::optional< bool >
const IfcParse::entity& Ifc4x3_rc1::IfcFillAreaStyle::declaration() const { return *IFC4X3_RC1_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcFillAreaStyle::Class() { return *IFC4X3_RC1_IfcFillAreaStyle_type; }
Ifc4x3_rc1::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelorDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelorDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc1::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_rc1::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelorDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelorDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4x3_rc1::IfcCurveStyle* Ifc4x3_rc1::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc1::IfcCurveStyle>(true); }
@@ -16915,7 +16915,7 @@ Ifc4x3_rc1::IfcGeographicElementType::IfcGeographicElementType(std::string v1_Gl
const IfcParse::entity& Ifc4x3_rc1::IfcGeometricCurveSet::declaration() const { return *IFC4X3_RC1_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcGeometricCurveSet::Class() { return *IFC4X3_RC1_IfcGeometricCurveSet_type; }
Ifc4x3_rc1::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_rc1::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4x3_rc1::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4x3_rc1::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -16960,14 +16960,14 @@ Ifc4x3_rc1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubC
Ifc4x3_rc1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4x3_rc1::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4x3_rc1::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4x3_rc1::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc1::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcGeometricSetSelect >::ptr Ifc4x3_rc1::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc1::IfcGeometricSetSelect >(); }
+void Ifc4x3_rc1::IfcGeometricSet::setElements(aggregate_of< ::Ifc4x3_rc1::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcGeometricSet::declaration() const { return *IFC4X3_RC1_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcGeometricSet::Class() { return *IFC4X3_RC1_IfcGeometricSet_type; }
Ifc4x3_rc1::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_rc1::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4x3_rc1::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeomodel
@@ -17199,8 +17199,8 @@ Ifc4x3_rc1::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x3_rc1::IfcTessellate
// Function implementations for IfcIndexedPolyCurve
::Ifc4x3_rc1::IfcCartesianPointList* Ifc4x3_rc1::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc1::IfcCartesianPointList>(true); }
void Ifc4x3_rc1::IfcIndexedPolyCurve::setPoints(::Ifc4x3_rc1::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc1::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc1::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcSegmentIndexSelect >::ptr > Ifc4x3_rc1::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc1::IfcSegmentIndexSelect >(); }
+void Ifc4x3_rc1::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_rc1::IfcIndexedPolyCurve::SelfIntersect() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_rc1::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -17208,7 +17208,7 @@ void Ifc4x3_rc1::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v
const IfcParse::entity& Ifc4x3_rc1::IfcIndexedPolyCurve::declaration() const { return *IFC4X3_RC1_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcIndexedPolyCurve::Class() { return *IFC4X3_RC1_IfcIndexedPolyCurve_type; }
Ifc4x3_rc1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_rc1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_rc1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4x3_rc1::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -17314,14 +17314,14 @@ Ifc4x3_rc1::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name,
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4x3_rc1::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_rc1::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc1::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr Ifc4x3_rc1::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc1::IfcValue >(); }
+void Ifc4x3_rc1::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4X3_RC1_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcIrregularTimeSeriesValue::Class() { return *IFC4X3_RC1_IfcIrregularTimeSeriesValue_type; }
Ifc4x3_rc1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC1_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4x3_rc1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::Value > Ifc4x3_rc1::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc1::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -17792,8 +17792,8 @@ Ifc4x3_rc1::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDefi
Ifc4x3_rc1::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc1::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcClassificationSelect >::ptr Ifc4x3_rc1::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc1::IfcClassificationSelect >(); }
+void Ifc4x3_rc1::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4x3_rc1::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4x3_rc1::IfcMaterial* Ifc4x3_rc1::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4x3_rc1::IfcMaterial>(true); }
void Ifc4x3_rc1::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4x3_rc1::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -17801,7 +17801,7 @@ void Ifc4x3_rc1::IfcMaterialClassificationRelationship::setClassifiedMaterial(::
const IfcParse::entity& Ifc4x3_rc1::IfcMaterialClassificationRelationship::declaration() const { return *IFC4X3_RC1_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcMaterialClassificationRelationship::Class() { return *IFC4X3_RC1_IfcMaterialClassificationRelationship_type; }
Ifc4x3_rc1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC1_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_rc1::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4x3_rc1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4x3_rc1::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_rc1::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4x3_rc1::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19035,8 +19035,8 @@ std::string Ifc4x3_rc1::IfcPresentationLayerAssignment::Name() const { std::str
void Ifc4x3_rc1::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4x3_rc1::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4x3_rc1::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc1::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcLayeredItem >::ptr Ifc4x3_rc1::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc1::IfcLayeredItem >(); }
+void Ifc4x3_rc1::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4x3_rc1::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4x3_rc1::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4x3_rc1::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -19044,7 +19044,7 @@ void Ifc4x3_rc1::IfcPresentationLayerAssignment::setIdentifier(boost::optional<
const IfcParse::entity& Ifc4x3_rc1::IfcPresentationLayerAssignment::declaration() const { return *IFC4X3_RC1_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcPresentationLayerAssignment::Class() { return *IFC4X3_RC1_IfcPresentationLayerAssignment_type; }
Ifc4x3_rc1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC1_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4x3_rc1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4x3_rc1::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -19060,7 +19060,7 @@ void Ifc4x3_rc1::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::I
const IfcParse::entity& Ifc4x3_rc1::IfcPresentationLayerWithStyle::declaration() const { return *IFC4X3_RC1_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcPresentationLayerWithStyle::Class() { return *IFC4X3_RC1_IfcPresentationLayerWithStyle_type; }
Ifc4x3_rc1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4x3_rc1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4x3_rc1::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19073,14 +19073,14 @@ Ifc4x3_rc1::IfcPresentationStyle::IfcPresentationStyle(IfcEntityInstanceData* e)
Ifc4x3_rc1::IfcPresentationStyle::IfcPresentationStyle(boost::optional< std::string > v1_Name) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPresentationStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } }
// Function implementations for IfcPresentationStyleAssignment
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc1::IfcPresentationStyleAssignment::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyleSelect >::ptr Ifc4x3_rc1::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc1::IfcPresentationStyleSelect >(); }
+void Ifc4x3_rc1::IfcPresentationStyleAssignment::setStyles(aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcPresentationStyleAssignment::declaration() const { return *IFC4X3_RC1_IfcPresentationStyleAssignment_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcPresentationStyleAssignment::Class() { return *IFC4X3_RC1_IfcPresentationStyleAssignment_type; }
Ifc4x3_rc1::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC1_IfcPresentationStyleAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of_instance::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles));data_->setArgument(0,attr);} }
+Ifc4x3_rc1::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyleSelect >::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcProcedure
boost::optional< ::Ifc4x3_rc1::IfcProcedureTypeEnum::Value > Ifc4x3_rc1::IfcProcedure::PredefinedType() const { if(!data_->getArgument(7) || data_->getArgument(7)->isNull()) { return boost::none; } return ::Ifc4x3_rc1::IfcProcedureTypeEnum::FromString(*data_->getArgument(7)); }
@@ -19302,8 +19302,8 @@ Ifc4x3_rc1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship
Ifc4x3_rc1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcProperty* v3_DependingProperty, ::Ifc4x3_rc1::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc1::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc1::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > Ifc4x3_rc1::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc1::IfcValue >(); }
+void Ifc4x3_rc1::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_rc1::IfcPropertyEnumeration* Ifc4x3_rc1::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc1::IfcPropertyEnumeration>(true); }
void Ifc4x3_rc1::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_rc1::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19311,13 +19311,13 @@ void Ifc4x3_rc1::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_rc
const IfcParse::entity& Ifc4x3_rc1::IfcPropertyEnumeratedValue::declaration() const { return *IFC4X3_RC1_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcPropertyEnumeratedValue::Class() { return *IFC4X3_RC1_IfcPropertyEnumeratedValue_type; }
Ifc4x3_rc1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_rc1::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4x3_rc1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_rc1::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4x3_rc1::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_rc1::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc1::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr Ifc4x3_rc1::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc1::IfcValue >(); }
+void Ifc4x3_rc1::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4x3_rc1::IfcUnit* Ifc4x3_rc1::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc1::IfcUnit>(true); }
void Ifc4x3_rc1::IfcPropertyEnumeration::setUnit(::Ifc4x3_rc1::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -19325,11 +19325,11 @@ void Ifc4x3_rc1::IfcPropertyEnumeration::setUnit(::Ifc4x3_rc1::IfcUnit* v) { {If
const IfcParse::entity& Ifc4x3_rc1::IfcPropertyEnumeration::declaration() const { return *IFC4X3_RC1_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcPropertyEnumeration::Class() { return *IFC4X3_RC1_IfcPropertyEnumeration_type; }
Ifc4x3_rc1::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_rc1::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4x3_rc1::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_rc1::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc1::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc1::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > Ifc4x3_rc1::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc1::IfcValue >(); }
+void Ifc4x3_rc1::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_rc1::IfcUnit* Ifc4x3_rc1::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc1::IfcUnit>(true); }
void Ifc4x3_rc1::IfcPropertyListValue::setUnit(::Ifc4x3_rc1::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19337,7 +19337,7 @@ void Ifc4x3_rc1::IfcPropertyListValue::setUnit(::Ifc4x3_rc1::IfcUnit* v) { {IfcW
const IfcParse::entity& Ifc4x3_rc1::IfcPropertyListValue::declaration() const { return *IFC4X3_RC1_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcPropertyListValue::Class() { return *IFC4X3_RC1_IfcPropertyListValue_type; }
Ifc4x3_rc1::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_rc1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4x3_rc1::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_rc1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4x3_rc1::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -19400,10 +19400,10 @@ Ifc4x3_rc1::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData
Ifc4x3_rc1::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcValue* v3_NominalValue, ::Ifc4x3_rc1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc1::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc1::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc1::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc1::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > Ifc4x3_rc1::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc1::IfcValue >(); }
+void Ifc4x3_rc1::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > Ifc4x3_rc1::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc1::IfcValue >(); }
+void Ifc4x3_rc1::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4x3_rc1::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4x3_rc1::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4x3_rc1::IfcUnit* Ifc4x3_rc1::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc1::IfcUnit>(true); }
@@ -19417,7 +19417,7 @@ void Ifc4x3_rc1::IfcPropertyTableValue::setCurveInterpolation(boost::optional< :
const IfcParse::entity& Ifc4x3_rc1::IfcPropertyTableValue::declaration() const { return *IFC4X3_RC1_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcPropertyTableValue::Class() { return *IFC4X3_RC1_IfcPropertyTableValue_type; }
Ifc4x3_rc1::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_rc1::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4x3_rc1::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_rc1::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -19898,14 +19898,14 @@ boost::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3_rc1:
void Ifc4x3_rc1::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4x3_rc1::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4x3_rc1::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc1::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4x3_rc1::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > Ifc4x3_rc1::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4x3_rc1::IfcBendingParameterSelect >(); }
+void Ifc4x3_rc1::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingBarType::declaration() const { return *IFC4X3_RC1_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingBarType::Class() { return *IFC4X3_RC1_IfcReinforcingBarType_type; }
Ifc4x3_rc1::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4x3_rc1::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4x3_rc1::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -19972,14 +19972,14 @@ boost::optional< double > Ifc4x3_rc1::IfcReinforcingMeshType::TransverseBarSpaci
void Ifc4x3_rc1::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4x3_rc1::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4x3_rc1::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc1::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4x3_rc1::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > Ifc4x3_rc1::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4x3_rc1::IfcBendingParameterSelect >(); }
+void Ifc4x3_rc1::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingMeshType::declaration() const { return *IFC4X3_RC1_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcReinforcingMeshType::Class() { return *IFC4X3_RC1_IfcReinforcingMeshType_type; }
Ifc4x3_rc1::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4x3_rc1::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAggregates
::Ifc4x3_rc1::IfcObjectDefinition* Ifc4x3_rc1::IfcRelAggregates::RelatingObject() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc1::IfcObjectDefinition>(true); }
@@ -20080,14 +20080,14 @@ Ifc4x3_rc1::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceDa
Ifc4x3_rc1::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4x3_rc1::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc1::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v6_RelatedObjectsType,::Ifc4x3_rc1::IfcObjectTypeEnum::ToString(*v6_RelatedObjectsType))));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_rc1::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr Ifc4x3_rc1::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_rc1::IfcDefinitionSelect >(); }
+void Ifc4x3_rc1::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociates::declaration() const { return *IFC4X3_RC1_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociates::Class() { return *IFC4X3_RC1_IfcRelAssociates_type; }
Ifc4x3_rc1::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4x3_rc1::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4x3_rc1::IfcApproval* Ifc4x3_rc1::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc1::IfcApproval>(true); }
@@ -20097,7 +20097,7 @@ void Ifc4x3_rc1::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4x3_rc1::Ifc
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesApproval::declaration() const { return *IFC4X3_RC1_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesApproval::Class() { return *IFC4X3_RC1_IfcRelAssociatesApproval_type; }
Ifc4x3_rc1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4x3_rc1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4x3_rc1::IfcClassificationSelect* Ifc4x3_rc1::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc1::IfcClassificationSelect>(true); }
@@ -20107,7 +20107,7 @@ void Ifc4x3_rc1::IfcRelAssociatesClassification::setRelatingClassification(::Ifc
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesClassification::declaration() const { return *IFC4X3_RC1_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesClassification::Class() { return *IFC4X3_RC1_IfcRelAssociatesClassification_type; }
Ifc4x3_rc1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4x3_rc1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4x3_rc1::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -20119,7 +20119,7 @@ void Ifc4x3_rc1::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4x3_rc1:
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesConstraint::declaration() const { return *IFC4X3_RC1_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesConstraint::Class() { return *IFC4X3_RC1_IfcRelAssociatesConstraint_type; }
Ifc4x3_rc1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc1::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4x3_rc1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc1::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4x3_rc1::IfcDocumentSelect* Ifc4x3_rc1::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc1::IfcDocumentSelect>(true); }
@@ -20129,7 +20129,7 @@ void Ifc4x3_rc1::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4x3_rc1::Ifc
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesDocument::declaration() const { return *IFC4X3_RC1_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesDocument::Class() { return *IFC4X3_RC1_IfcRelAssociatesDocument_type; }
Ifc4x3_rc1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4x3_rc1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4x3_rc1::IfcLibrarySelect* Ifc4x3_rc1::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc1::IfcLibrarySelect>(true); }
@@ -20139,7 +20139,7 @@ void Ifc4x3_rc1::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4x3_rc1::IfcLi
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesLibrary::declaration() const { return *IFC4X3_RC1_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesLibrary::Class() { return *IFC4X3_RC1_IfcRelAssociatesLibrary_type; }
Ifc4x3_rc1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4x3_rc1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4x3_rc1::IfcMaterialSelect* Ifc4x3_rc1::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc1::IfcMaterialSelect>(true); }
@@ -20149,7 +20149,7 @@ void Ifc4x3_rc1::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4x3_rc1::Ifc
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesMaterial::declaration() const { return *IFC4X3_RC1_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesMaterial::Class() { return *IFC4X3_RC1_IfcRelAssociatesMaterial_type; }
Ifc4x3_rc1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4x3_rc1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesProfileDef
::Ifc4x3_rc1::IfcProfileDef* Ifc4x3_rc1::IfcRelAssociatesProfileDef::RelatingProfileDef() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc1::IfcProfileDef>(true); }
@@ -20159,7 +20159,7 @@ void Ifc4x3_rc1::IfcRelAssociatesProfileDef::setRelatingProfileDef(::Ifc4x3_rc1:
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesProfileDef::declaration() const { return *IFC4X3_RC1_IfcRelAssociatesProfileDef_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelAssociatesProfileDef::Class() { return *IFC4X3_RC1_IfcRelAssociatesProfileDef_type; }
Ifc4x3_rc1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelAssociatesProfileDef_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
+Ifc4x3_rc1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -20318,14 +20318,14 @@ Ifc4x3_rc1::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::If
// Function implementations for IfcRelDeclares
::Ifc4x3_rc1::IfcContext* Ifc4x3_rc1::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc1::IfcContext>(true); }
void Ifc4x3_rc1::IfcRelDeclares::setRelatingContext(::Ifc4x3_rc1::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4x3_rc1::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr Ifc4x3_rc1::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4x3_rc1::IfcDefinitionSelect >(); }
+void Ifc4x3_rc1::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcRelDeclares::declaration() const { return *IFC4X3_RC1_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelDeclares::Class() { return *IFC4X3_RC1_IfcRelDeclares_type; }
Ifc4x3_rc1::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4x3_rc1::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -20470,8 +20470,8 @@ Ifc4x3_rc1::IfcRelProjectsElement::IfcRelProjectsElement(IfcEntityInstanceData*
Ifc4x3_rc1::IfcRelProjectsElement::IfcRelProjectsElement(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcElement* v5_RelatingElement, ::Ifc4x3_rc1::IfcFeatureElementAddition* v6_RelatedFeatureElement) : IfcRelDecomposes((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelProjectsElement_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingElement));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedFeatureElement));data_->setArgument(5,attr);} }
// Function implementations for IfcRelReferencedInSpatialStructure
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcSpatialReferenceSelect >::ptr Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_rc1::IfcSpatialReferenceSelect >(); }
+void Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of< ::Ifc4x3_rc1::IfcSpatialReferenceSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
::Ifc4x3_rc1::IfcSpatialElement* Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::RelatingStructure() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc1::IfcSpatialElement>(true); }
void Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4x3_rc1::IfcSpatialElement* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
@@ -20479,7 +20479,7 @@ void Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4
const IfcParse::entity& Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::declaration() const { return *IFC4X3_RC1_IfcRelReferencedInSpatialStructure_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::Class() { return *IFC4X3_RC1_IfcRelReferencedInSpatialStructure_type; }
Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(IfcEntityInstanceData* e) : IfcRelConnects((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcRelReferencedInSpatialStructure_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_rc1::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
+Ifc4x3_rc1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_rc1::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
// Function implementations for IfcRelSequence
::Ifc4x3_rc1::IfcProcess* Ifc4x3_rc1::IfcRelSequence::RelatingProcess() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc1::IfcProcess>(true); }
@@ -20651,8 +20651,8 @@ Ifc4x3_rc1::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((IfcE
Ifc4x3_rc1::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc1::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr Ifc4x3_rc1::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc1::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc1::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4x3_rc1::IfcApproval* Ifc4x3_rc1::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc1::IfcApproval>(true); }
void Ifc4x3_rc1::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_rc1::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -20660,19 +20660,19 @@ void Ifc4x3_rc1::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_r
const IfcParse::entity& Ifc4x3_rc1::IfcResourceApprovalRelationship::declaration() const { return *IFC4X3_RC1_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcResourceApprovalRelationship::Class() { return *IFC4X3_RC1_IfcResourceApprovalRelationship_type; }
Ifc4x3_rc1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc1::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4x3_rc1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc1::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4x3_rc1::IfcConstraint* Ifc4x3_rc1::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc1::IfcConstraint>(true); }
void Ifc4x3_rc1::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4x3_rc1::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc1::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr Ifc4x3_rc1::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc1::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc1::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcResourceConstraintRelationship::declaration() const { return *IFC4X3_RC1_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcResourceConstraintRelationship::Class() { return *IFC4X3_RC1_IfcResourceConstraintRelationship_type; }
Ifc4x3_rc1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_rc1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4x3_rc1::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -21043,14 +21043,14 @@ Ifc4x3_rc1::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData
Ifc4x3_rc1::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x3_rc1::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4x3_rc1::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc1::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcShell >::ptr Ifc4x3_rc1::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc1::IfcShell >(); }
+void Ifc4x3_rc1::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4x3_rc1::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcShellBasedSurfaceModel::declaration() const { return *IFC4X3_RC1_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcShellBasedSurfaceModel::Class() { return *IFC4X3_RC1_IfcShellBasedSurfaceModel_type; }
Ifc4x3_rc1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4x3_rc1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4x3_rc1::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSign
boost::optional< ::Ifc4x3_rc1::IfcSignTypeEnum::Value > Ifc4x3_rc1::IfcSign::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc1::IfcSignTypeEnum::FromString(*data_->getArgument(8)); }
@@ -21859,8 +21859,8 @@ Ifc4x3_rc1::IfcStyleModel::IfcStyleModel(::Ifc4x3_rc1::IfcRepresentationContext*
// Function implementations for IfcStyledItem
::Ifc4x3_rc1::IfcRepresentationItem* Ifc4x3_rc1::IfcStyledItem::Item() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc1::IfcRepresentationItem>(true); }
void Ifc4x3_rc1::IfcStyledItem::setItem(::Ifc4x3_rc1::IfcRepresentationItem* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcStyledItem::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc1::IfcStyledItem::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcStyleAssignmentSelect >::ptr Ifc4x3_rc1::IfcStyledItem::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc1::IfcStyleAssignmentSelect >(); }
+void Ifc4x3_rc1::IfcStyledItem::setStyles(aggregate_of< ::Ifc4x3_rc1::IfcStyleAssignmentSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< std::string > Ifc4x3_rc1::IfcStyledItem::Name() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
void Ifc4x3_rc1::IfcStyledItem::setName(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -21868,7 +21868,7 @@ void Ifc4x3_rc1::IfcStyledItem::setName(boost::optional< std::string > v) { {Ifc
const IfcParse::entity& Ifc4x3_rc1::IfcStyledItem::declaration() const { return *IFC4X3_RC1_IfcStyledItem_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcStyledItem::Class() { return *IFC4X3_RC1_IfcStyledItem_type; }
Ifc4x3_rc1::IfcStyledItem::IfcStyledItem(IfcEntityInstanceData* e) : IfcRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcStyledItem_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcStyledItem::IfcStyledItem(::Ifc4x3_rc1::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc1::IfcStyledItem::IfcStyledItem(::Ifc4x3_rc1::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4x3_rc1::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles)->generalize());data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcStyledRepresentation
@@ -21989,14 +21989,14 @@ Ifc4x3_rc1::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::opti
// Function implementations for IfcSurfaceStyle
::Ifc4x3_rc1::IfcSurfaceSide::Value Ifc4x3_rc1::IfcSurfaceStyle::Side() const { return ::Ifc4x3_rc1::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4x3_rc1::IfcSurfaceStyle::setSide(::Ifc4x3_rc1::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_rc1::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc1::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect >::ptr Ifc4x3_rc1::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect >(); }
+void Ifc4x3_rc1::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyle::declaration() const { return *IFC4X3_RC1_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcSurfaceStyle::Class() { return *IFC4X3_RC1_IfcSurfaceStyle_type; }
Ifc4x3_rc1::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_rc1::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4x3_rc1::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_rc1::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4x3_rc1::IfcColourRgb* Ifc4x3_rc1::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc1::IfcColourRgb>(true); }
@@ -22251,8 +22251,8 @@ Ifc4x3_rc1::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil::
Ifc4x3_rc1::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4x3_rc1::IfcUnit* v4_Unit, ::Ifc4x3_rc1::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc1::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc1::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > Ifc4x3_rc1::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc1::IfcValue >(); }
+void Ifc4x3_rc1::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4x3_rc1::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4x3_rc1::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -22260,7 +22260,7 @@ void Ifc4x3_rc1::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrit
const IfcParse::entity& Ifc4x3_rc1::IfcTableRow::declaration() const { return *IFC4X3_RC1_IfcTableRow_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcTableRow::Class() { return *IFC4X3_RC1_IfcTableRow_type; }
Ifc4x3_rc1::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC1_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4x3_rc1::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4x3_rc1::IfcTankTypeEnum::Value > Ifc4x3_rc1::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc1::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22672,14 +22672,14 @@ Ifc4x3_rc1::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::If
Ifc4x3_rc1::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3_rc1::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3_rc1::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4x3_rc1::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4x3_rc1::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc1::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr Ifc4x3_rc1::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc1::IfcValue >(); }
+void Ifc4x3_rc1::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcTimeSeriesValue::declaration() const { return *IFC4X3_RC1_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcTimeSeriesValue::Class() { return *IFC4X3_RC1_IfcTimeSeriesValue_type; }
Ifc4x3_rc1::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC1_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4x3_rc1::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -22832,10 +22832,10 @@ Ifc4x3_rc1::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::I
// Function implementations for IfcTrimmedCurve
::Ifc4x3_rc1::IfcCurve* Ifc4x3_rc1::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc1::IfcCurve>(true); }
void Ifc4x3_rc1::IfcTrimmedCurve::setBasisCurve(::Ifc4x3_rc1::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc1::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc1::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr Ifc4x3_rc1::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc1::IfcTrimmingSelect >(); }
+void Ifc4x3_rc1::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr Ifc4x3_rc1::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc1::IfcTrimmingSelect >(); }
+void Ifc4x3_rc1::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4x3_rc1::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4x3_rc1::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4x3_rc1::IfcTrimmingPreference::Value Ifc4x3_rc1::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x3_rc1::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -22845,7 +22845,7 @@ void Ifc4x3_rc1::IfcTrimmedCurve::setMasterRepresentation(::Ifc4x3_rc1::IfcTrimm
const IfcParse::entity& Ifc4x3_rc1::IfcTrimmedCurve::declaration() const { return *IFC4X3_RC1_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcTrimmedCurve::Class() { return *IFC4X3_RC1_IfcTrimmedCurve_type; }
Ifc4x3_rc1::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC1_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_rc1::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc1::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_rc1::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4x3_rc1::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_rc1::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc1::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_rc1::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::Value > Ifc4x3_rc1::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc1::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22946,14 +22946,14 @@ Ifc4x3_rc1::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) :
Ifc4x3_rc1::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x3_rc1::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4x3_rc1::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4x3_rc1::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4x3_rc1::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc1::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc1::IfcUnit >::ptr Ifc4x3_rc1::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc1::IfcUnit >(); }
+void Ifc4x3_rc1::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4x3_rc1::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc1::IfcUnitAssignment::declaration() const { return *IFC4X3_RC1_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4x3_rc1::IfcUnitAssignment::Class() { return *IFC4X3_RC1_IfcUnitAssignment_type; }
Ifc4x3_rc1::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC1_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc1::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4x3_rc1::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4x3_rc1::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC1_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::Value > Ifc4x3_rc1::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc1::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4x3_rc1.h b/src/ifcparse/Ifc4x3_rc1.h
index 0d49d07989..ab5ab49ca6 100644
--- a/src/ifcparse/Ifc4x3_rc1.h
+++ b/src/ifcparse/Ifc4x3_rc1.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,11 +201,13 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -207,6 +220,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -216,6 +230,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -227,6 +242,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -305,6 +321,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -317,11 +334,13 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
class IFC_PARSE_API IfcFacilityPartTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFacilityPartTypeSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -332,6 +351,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -341,6 +361,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -353,6 +374,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -360,16 +382,19 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
class IFC_PARSE_API IfcImpactProtectionDeviceTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcImpactProtectionDeviceTypeSelect > list;
};
class IFC_PARSE_API IfcInterferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcInterferenceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -381,6 +406,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -395,6 +421,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -421,11 +448,13 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
class IFC_PARSE_API IfcLinearAxisSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLinearAxisSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -456,6 +485,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -469,6 +499,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -485,6 +516,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -492,6 +524,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -499,6 +532,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -506,6 +540,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -513,6 +548,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -524,6 +560,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// Definition from ISO/CD 10303-46:1992: The presentation style select is a selection of one of many kinds of styles, a different one for each kind of geometric representation item to be styled.
///
@@ -536,6 +573,7 @@ public:
class IFC_PARSE_API IfcPresentationStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPresentationStyleSelect > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -550,11 +588,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -568,11 +608,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -580,6 +622,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -593,6 +636,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -600,11 +644,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -620,6 +666,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -643,6 +690,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -659,6 +707,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -670,6 +719,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -686,11 +736,13 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
class IFC_PARSE_API IfcSpatialReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpatialReferenceSelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -705,6 +757,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -718,6 +771,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// The style assignment select is a selection of two wasy of assigning presentation styles to an IfcStyledItem.
///
@@ -732,6 +786,7 @@ public:
class IFC_PARSE_API IfcStyleAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStyleAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -745,6 +800,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -758,6 +814,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -769,12 +826,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -782,11 +841,13 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcTransportElementTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTransportElementTypeSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -796,6 +857,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -813,6 +875,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -827,6 +890,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -839,6 +903,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -846,6 +911,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -10965,12 +11031,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -11144,15 +11210,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4x3_rc1::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4x3_rc1::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4x3_rc1::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_rc1::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4x3_rc1::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_rc1::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -11943,15 +12009,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4x3_rc1::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -11988,7 +12054,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -12015,12 +12081,12 @@ public:
class IFC_PARSE_API IfcPresentationStyleAssignment : public IfcUtil::IfcBaseEntity, public IfcStyleAssignmentSelect {
public:
/// A set of presentation styles that are assigned to styled items.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyleSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyleSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationStyleAssignment (IfcEntityInstanceData* e);
- IfcPresentationStyleAssignment (aggregate_of_instance::ptr v1_Styles);
+ IfcPresentationStyleAssignment (aggregate_of< ::Ifc4x3_rc1::IfcPresentationStyleSelect >::ptr v1_Styles);
typedef aggregate_of< IfcPresentationStyleAssignment > list;
};
/// IfcProductRepresentation defines a representation of a
@@ -12352,15 +12418,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_rc1::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_rc1::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_rc1::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_rc1::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -13210,15 +13276,15 @@ public:
/// for file based exchange.
///
/// NOTE Only the select item IfcPresentationStyle shall be used from IFC2x4 onwards, the IfcPresentationStyleAssignment has been deprecated.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcStyleAssignmentSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_rc1::IfcStyleAssignmentSelect >::ptr v);
/// The word, or group of words, by which the styled item is referred to.
boost::optional< std::string > Name() const;
void setName(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcStyledItem (IfcEntityInstanceData* e);
- IfcStyledItem (::Ifc4x3_rc1::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name);
+ IfcStyledItem (::Ifc4x3_rc1::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4x3_rc1::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name);
typedef aggregate_of< IfcStyledItem > list;
};
/// The IfcStyledRepresentation represents the concept of a styled presentation being a representation of a product or a product component, like material. within a representation context. This representation context does not need to be (but may be) a geometric representation context.
@@ -13271,12 +13337,12 @@ public:
::Ifc4x3_rc1::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4x3_rc1::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_rc1::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_rc1::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13585,15 +13651,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -14142,12 +14208,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -14213,12 +14279,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4x3_rc1::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4x3_rc1::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -15194,8 +15260,8 @@ public:
::Ifc4x3_rc1::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4x3_rc1::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -15236,7 +15302,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc1::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc1::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -15477,12 +15543,12 @@ public:
::Ifc4x3_rc1::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4x3_rc1::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15693,14 +15759,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle, public IfcPresentationStyleSelect {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4x3_rc1::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelorDraughting() const;
void setModelorDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_rc1::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelorDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -15854,12 +15920,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4x3_rc1::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4x3_rc1::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -17905,15 +17971,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4x3_rc1::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4x3_rc1::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc1::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc1::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -17942,12 +18008,12 @@ public:
::Ifc4x3_rc1::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4x3_rc1::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc1::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_rc1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -18192,12 +18258,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4x3_rc1::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4x3_rc1::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -21278,7 +21344,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4x3_rc1::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -22409,15 +22475,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4x3_rc1::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4x3_rc1::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_rc1::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_rc1::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -22490,15 +22556,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_rc1::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_rc1::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_rc1::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_rc1::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22838,13 +22904,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22862,7 +22928,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -23388,12 +23454,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -23407,7 +23473,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -23448,7 +23514,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -23465,7 +23531,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc1::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc1::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -23483,7 +23549,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -23501,7 +23567,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -23606,7 +23672,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
@@ -23617,7 +23683,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesProfileDef (IfcEntityInstanceData* e);
- IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcProfileDef* v6_RelatingProfileDef);
+ IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc1::IfcProfileDef* v6_RelatingProfileDef);
typedef aggregate_of< IfcRelAssociatesProfileDef > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -24090,12 +24156,12 @@ public:
::Ifc4x3_rc1::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4x3_rc1::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc1::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_rc1::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -24608,8 +24674,8 @@ class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects
public:
/// Set of products, which are referenced within this level of the spatial structure hierarchy.
/// NOTEÂ Referenced elements are contained elsewhere within the spatial structure, they are referenced additionally by this spatial structure element, e.g., because they span several stories.
- aggregate_of_instance::ptr RelatedElements() const;
- void setRelatedElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcSpatialReferenceSelect >::ptr RelatedElements() const;
+ void setRelatedElements(aggregate_of< ::Ifc4x3_rc1::IfcSpatialReferenceSelect >::ptr v);
/// Spatial structure element, within which the element is referenced. Any element can be contained within zero, one or many elements of the project spatial and zoning structure.
///
/// IFC2x Edition 4 CHANGEÂ The attribute relatingStructure as been promoted to the new supertype IfcSpatialElement with upward compatibility for file based exchange.
@@ -24618,7 +24684,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelReferencedInSpatialStructure (IfcEntityInstanceData* e);
- IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_rc1::IfcSpatialElement* v6_RelatingStructure);
+ IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc1::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_rc1::IfcSpatialElement* v6_RelatingStructure);
typedef aggregate_of< IfcRelReferencedInSpatialStructure > list;
};
/// IfcRelSequence is a
@@ -31235,14 +31301,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4x3_rc1::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4x3_rc1::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcSegmentIndexSelect >::ptr > v);
boost::optional< bool > SelfIntersect() const;
void setSelfIntersect(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4x3_rc1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4x3_rc1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -33364,12 +33430,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
/// The aggregation relationship
@@ -35648,11 +35714,11 @@ public:
::Ifc4x3_rc1::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4x3_rc1::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -35662,7 +35728,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4x3_rc1::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc1::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4x3_rc1::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_rc1::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc1::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -44508,12 +44574,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_rc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc1::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/Ifc4x3_rc2-definitions.h b/src/ifcparse/Ifc4x3_rc2-definitions.h
index 5e170e7c07..662e4e8b9e 100644
--- a/src/ifcparse/Ifc4x3_rc2-definitions.h
+++ b/src/ifcparse/Ifc4x3_rc2-definitions.h
@@ -4023,3 +4023,53 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectObjectAssignment
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSiUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcGradient
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4x3_rc2.cpp b/src/ifcparse/Ifc4x3_rc2.cpp
index f461d1734d..9ade0b4c5a 100644
--- a/src/ifcparse/Ifc4x3_rc2.cpp
+++ b/src/ifcparse/Ifc4x3_rc2.cpp
@@ -15765,8 +15765,8 @@ boost::optional< std::string > Ifc4x3_rc2::IfcDocumentInformation::Revision() co
void Ifc4x3_rc2::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4x3_rc2::IfcActorSelect* Ifc4x3_rc2::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4x3_rc2::IfcActorSelect>(true); }
void Ifc4x3_rc2::IfcDocumentInformation::setDocumentOwner(::Ifc4x3_rc2::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc2::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4x3_rc2::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcActorSelect >::ptr > Ifc4x3_rc2::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4x3_rc2::IfcActorSelect >(); }
+void Ifc4x3_rc2::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4x3_rc2::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4x3_rc2::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4x3_rc2::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -15790,7 +15790,7 @@ void Ifc4x3_rc2::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4x3_rc2
const IfcParse::entity& Ifc4x3_rc2::IfcDocumentInformation::declaration() const { return *IFC4X3_RC2_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcDocumentInformation::Class() { return *IFC4X3_RC2_IfcDocumentInformation_type; }
Ifc4x3_rc2::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc2::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc2::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc2::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_rc2::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_rc2::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4x3_rc2::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc2::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc2::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc2::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_rc2::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_rc2::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4x3_rc2::IfcDocumentInformation* Ifc4x3_rc2::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc2::IfcDocumentInformation>(true); }
@@ -16484,14 +16484,14 @@ Ifc4x3_rc2::IfcExternalReference::IfcExternalReference(boost::optional< std::str
// Function implementations for IfcExternalReferenceRelationship
::Ifc4x3_rc2::IfcExternalReference* Ifc4x3_rc2::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc2::IfcExternalReference>(true); }
void Ifc4x3_rc2::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4x3_rc2::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc2::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr Ifc4x3_rc2::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc2::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc2::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcExternalReferenceRelationship::declaration() const { return *IFC4X3_RC2_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcExternalReferenceRelationship::Class() { return *IFC4X3_RC2_IfcExternalReferenceRelationship_type; }
Ifc4x3_rc2::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_rc2::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4x3_rc2::IfcExternalSpatialElementTypeEnum::Value > Ifc4x3_rc2::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc2::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -16736,8 +16736,8 @@ Ifc4x3_rc2::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntity
Ifc4x3_rc2::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc2::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc2::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc2::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcFillStyleSelect >::ptr Ifc4x3_rc2::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc2::IfcFillStyleSelect >(); }
+void Ifc4x3_rc2::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4x3_rc2::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_rc2::IfcFillAreaStyle::ModelOrDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_rc2::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -16745,7 +16745,7 @@ void Ifc4x3_rc2::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool >
const IfcParse::entity& Ifc4x3_rc2::IfcFillAreaStyle::declaration() const { return *IFC4X3_RC2_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcFillAreaStyle::Class() { return *IFC4X3_RC2_IfcFillAreaStyle_type; }
Ifc4x3_rc2::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc2::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_rc2::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4x3_rc2::IfcCurveStyle* Ifc4x3_rc2::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc2::IfcCurveStyle>(true); }
@@ -17065,7 +17065,7 @@ Ifc4x3_rc2::IfcGeographicElementType::IfcGeographicElementType(std::string v1_Gl
const IfcParse::entity& Ifc4x3_rc2::IfcGeometricCurveSet::declaration() const { return *IFC4X3_RC2_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcGeometricCurveSet::Class() { return *IFC4X3_RC2_IfcGeometricCurveSet_type; }
Ifc4x3_rc2::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_rc2::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4x3_rc2::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4x3_rc2::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -17110,14 +17110,14 @@ Ifc4x3_rc2::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubC
Ifc4x3_rc2::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4x3_rc2::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4x3_rc2::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4x3_rc2::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc2::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcGeometricSetSelect >::ptr Ifc4x3_rc2::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc2::IfcGeometricSetSelect >(); }
+void Ifc4x3_rc2::IfcGeometricSet::setElements(aggregate_of< ::Ifc4x3_rc2::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcGeometricSet::declaration() const { return *IFC4X3_RC2_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcGeometricSet::Class() { return *IFC4X3_RC2_IfcGeometricSet_type; }
Ifc4x3_rc2::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_rc2::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4x3_rc2::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeomodel
@@ -17363,8 +17363,8 @@ Ifc4x3_rc2::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x3_rc2::IfcTessellate
// Function implementations for IfcIndexedPolyCurve
::Ifc4x3_rc2::IfcCartesianPointList* Ifc4x3_rc2::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc2::IfcCartesianPointList>(true); }
void Ifc4x3_rc2::IfcIndexedPolyCurve::setPoints(::Ifc4x3_rc2::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc2::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc2::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcSegmentIndexSelect >::ptr > Ifc4x3_rc2::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc2::IfcSegmentIndexSelect >(); }
+void Ifc4x3_rc2::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_rc2::IfcIndexedPolyCurve::SelfIntersect() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_rc2::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -17372,7 +17372,7 @@ void Ifc4x3_rc2::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v
const IfcParse::entity& Ifc4x3_rc2::IfcIndexedPolyCurve::declaration() const { return *IFC4X3_RC2_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcIndexedPolyCurve::Class() { return *IFC4X3_RC2_IfcIndexedPolyCurve_type; }
Ifc4x3_rc2::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_rc2::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc2::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_rc2::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4x3_rc2::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -17478,14 +17478,14 @@ Ifc4x3_rc2::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name,
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4x3_rc2::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_rc2::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc2::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr Ifc4x3_rc2::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc2::IfcValue >(); }
+void Ifc4x3_rc2::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4X3_RC2_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcIrregularTimeSeriesValue::Class() { return *IFC4X3_RC2_IfcIrregularTimeSeriesValue_type; }
Ifc4x3_rc2::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC2_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4x3_rc2::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4x3_rc2::IfcJunctionBoxTypeEnum::Value > Ifc4x3_rc2::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc2::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -17964,8 +17964,8 @@ Ifc4x3_rc2::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDefi
Ifc4x3_rc2::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc2::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcClassificationSelect >::ptr Ifc4x3_rc2::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc2::IfcClassificationSelect >(); }
+void Ifc4x3_rc2::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4x3_rc2::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4x3_rc2::IfcMaterial* Ifc4x3_rc2::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4x3_rc2::IfcMaterial>(true); }
void Ifc4x3_rc2::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4x3_rc2::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -17973,7 +17973,7 @@ void Ifc4x3_rc2::IfcMaterialClassificationRelationship::setClassifiedMaterial(::
const IfcParse::entity& Ifc4x3_rc2::IfcMaterialClassificationRelationship::declaration() const { return *IFC4X3_RC2_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcMaterialClassificationRelationship::Class() { return *IFC4X3_RC2_IfcMaterialClassificationRelationship_type; }
Ifc4x3_rc2::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC2_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_rc2::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4x3_rc2::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4x3_rc2::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_rc2::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4x3_rc2::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19213,8 +19213,8 @@ std::string Ifc4x3_rc2::IfcPresentationLayerAssignment::Name() const { std::str
void Ifc4x3_rc2::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4x3_rc2::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4x3_rc2::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc2::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcLayeredItem >::ptr Ifc4x3_rc2::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc2::IfcLayeredItem >(); }
+void Ifc4x3_rc2::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4x3_rc2::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4x3_rc2::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4x3_rc2::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -19222,7 +19222,7 @@ void Ifc4x3_rc2::IfcPresentationLayerAssignment::setIdentifier(boost::optional<
const IfcParse::entity& Ifc4x3_rc2::IfcPresentationLayerAssignment::declaration() const { return *IFC4X3_RC2_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcPresentationLayerAssignment::Class() { return *IFC4X3_RC2_IfcPresentationLayerAssignment_type; }
Ifc4x3_rc2::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC2_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4x3_rc2::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc2::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4x3_rc2::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -19238,7 +19238,7 @@ void Ifc4x3_rc2::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::I
const IfcParse::entity& Ifc4x3_rc2::IfcPresentationLayerWithStyle::declaration() const { return *IFC4X3_RC2_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcPresentationLayerWithStyle::Class() { return *IFC4X3_RC2_IfcPresentationLayerWithStyle_type; }
Ifc4x3_rc2::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4x3_rc2::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc2::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4x3_rc2::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19251,14 +19251,14 @@ Ifc4x3_rc2::IfcPresentationStyle::IfcPresentationStyle(IfcEntityInstanceData* e)
Ifc4x3_rc2::IfcPresentationStyle::IfcPresentationStyle(boost::optional< std::string > v1_Name) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPresentationStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } }
// Function implementations for IfcPresentationStyleAssignment
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc2::IfcPresentationStyleAssignment::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyleSelect >::ptr Ifc4x3_rc2::IfcPresentationStyleAssignment::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc2::IfcPresentationStyleSelect >(); }
+void Ifc4x3_rc2::IfcPresentationStyleAssignment::setStyles(aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcPresentationStyleAssignment::declaration() const { return *IFC4X3_RC2_IfcPresentationStyleAssignment_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcPresentationStyleAssignment::Class() { return *IFC4X3_RC2_IfcPresentationStyleAssignment_type; }
Ifc4x3_rc2::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC2_IfcPresentationStyleAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of_instance::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles));data_->setArgument(0,attr);} }
+Ifc4x3_rc2::IfcPresentationStyleAssignment::IfcPresentationStyleAssignment(aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyleSelect >::ptr v1_Styles) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPresentationStyleAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Styles)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcProcedure
boost::optional< ::Ifc4x3_rc2::IfcProcedureTypeEnum::Value > Ifc4x3_rc2::IfcProcedure::PredefinedType() const { if(!data_->getArgument(7) || data_->getArgument(7)->isNull()) { return boost::none; } return ::Ifc4x3_rc2::IfcProcedureTypeEnum::FromString(*data_->getArgument(7)); }
@@ -19480,8 +19480,8 @@ Ifc4x3_rc2::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship
Ifc4x3_rc2::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcProperty* v3_DependingProperty, ::Ifc4x3_rc2::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc2::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc2::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > Ifc4x3_rc2::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc2::IfcValue >(); }
+void Ifc4x3_rc2::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_rc2::IfcPropertyEnumeration* Ifc4x3_rc2::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc2::IfcPropertyEnumeration>(true); }
void Ifc4x3_rc2::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_rc2::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19489,13 +19489,13 @@ void Ifc4x3_rc2::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_rc
const IfcParse::entity& Ifc4x3_rc2::IfcPropertyEnumeratedValue::declaration() const { return *IFC4X3_RC2_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcPropertyEnumeratedValue::Class() { return *IFC4X3_RC2_IfcPropertyEnumeratedValue_type; }
Ifc4x3_rc2::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_rc2::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4x3_rc2::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_rc2::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4x3_rc2::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_rc2::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc2::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr Ifc4x3_rc2::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc2::IfcValue >(); }
+void Ifc4x3_rc2::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4x3_rc2::IfcUnit* Ifc4x3_rc2::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc2::IfcUnit>(true); }
void Ifc4x3_rc2::IfcPropertyEnumeration::setUnit(::Ifc4x3_rc2::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -19503,11 +19503,11 @@ void Ifc4x3_rc2::IfcPropertyEnumeration::setUnit(::Ifc4x3_rc2::IfcUnit* v) { {If
const IfcParse::entity& Ifc4x3_rc2::IfcPropertyEnumeration::declaration() const { return *IFC4X3_RC2_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcPropertyEnumeration::Class() { return *IFC4X3_RC2_IfcPropertyEnumeration_type; }
Ifc4x3_rc2::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_rc2::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4x3_rc2::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_rc2::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc2::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc2::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > Ifc4x3_rc2::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc2::IfcValue >(); }
+void Ifc4x3_rc2::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_rc2::IfcUnit* Ifc4x3_rc2::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc2::IfcUnit>(true); }
void Ifc4x3_rc2::IfcPropertyListValue::setUnit(::Ifc4x3_rc2::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19515,7 +19515,7 @@ void Ifc4x3_rc2::IfcPropertyListValue::setUnit(::Ifc4x3_rc2::IfcUnit* v) { {IfcW
const IfcParse::entity& Ifc4x3_rc2::IfcPropertyListValue::declaration() const { return *IFC4X3_RC2_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcPropertyListValue::Class() { return *IFC4X3_RC2_IfcPropertyListValue_type; }
Ifc4x3_rc2::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_rc2::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4x3_rc2::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_rc2::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4x3_rc2::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -19578,10 +19578,10 @@ Ifc4x3_rc2::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData
Ifc4x3_rc2::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcValue* v3_NominalValue, ::Ifc4x3_rc2::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc2::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc2::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc2::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc2::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > Ifc4x3_rc2::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc2::IfcValue >(); }
+void Ifc4x3_rc2::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > Ifc4x3_rc2::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc2::IfcValue >(); }
+void Ifc4x3_rc2::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4x3_rc2::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4x3_rc2::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4x3_rc2::IfcUnit* Ifc4x3_rc2::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc2::IfcUnit>(true); }
@@ -19595,7 +19595,7 @@ void Ifc4x3_rc2::IfcPropertyTableValue::setCurveInterpolation(boost::optional< :
const IfcParse::entity& Ifc4x3_rc2::IfcPropertyTableValue::declaration() const { return *IFC4X3_RC2_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcPropertyTableValue::Class() { return *IFC4X3_RC2_IfcPropertyTableValue_type; }
Ifc4x3_rc2::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc2::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc2::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc2::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_rc2::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4x3_rc2::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc2::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc2::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc2::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_rc2::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -20076,14 +20076,14 @@ boost::optional< ::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3_rc2:
void Ifc4x3_rc2::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4x3_rc2::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4x3_rc2::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc2::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4x3_rc2::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > Ifc4x3_rc2::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4x3_rc2::IfcBendingParameterSelect >(); }
+void Ifc4x3_rc2::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcReinforcingBarType::declaration() const { return *IFC4X3_RC2_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcReinforcingBarType::Class() { return *IFC4X3_RC2_IfcReinforcingBarType_type; }
Ifc4x3_rc2::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc2::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc2::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4x3_rc2::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc2::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc2::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4x3_rc2::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -20150,14 +20150,14 @@ boost::optional< double > Ifc4x3_rc2::IfcReinforcingMeshType::TransverseBarSpaci
void Ifc4x3_rc2::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4x3_rc2::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4x3_rc2::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc2::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4x3_rc2::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > Ifc4x3_rc2::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4x3_rc2::IfcBendingParameterSelect >(); }
+void Ifc4x3_rc2::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcReinforcingMeshType::declaration() const { return *IFC4X3_RC2_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcReinforcingMeshType::Class() { return *IFC4X3_RC2_IfcReinforcingMeshType_type; }
Ifc4x3_rc2::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc2::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc2::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4x3_rc2::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc2::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc2::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAggregates
::Ifc4x3_rc2::IfcObjectDefinition* Ifc4x3_rc2::IfcRelAggregates::RelatingObject() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc2::IfcObjectDefinition>(true); }
@@ -20258,14 +20258,14 @@ Ifc4x3_rc2::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceDa
Ifc4x3_rc2::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4x3_rc2::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc2::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v6_RelatedObjectsType,::Ifc4x3_rc2::IfcObjectTypeEnum::ToString(*v6_RelatedObjectsType))));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_rc2::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr Ifc4x3_rc2::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_rc2::IfcDefinitionSelect >(); }
+void Ifc4x3_rc2::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociates::declaration() const { return *IFC4X3_RC2_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociates::Class() { return *IFC4X3_RC2_IfcRelAssociates_type; }
Ifc4x3_rc2::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4x3_rc2::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4x3_rc2::IfcApproval* Ifc4x3_rc2::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc2::IfcApproval>(true); }
@@ -20275,7 +20275,7 @@ void Ifc4x3_rc2::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4x3_rc2::Ifc
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesApproval::declaration() const { return *IFC4X3_RC2_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesApproval::Class() { return *IFC4X3_RC2_IfcRelAssociatesApproval_type; }
Ifc4x3_rc2::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4x3_rc2::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4x3_rc2::IfcClassificationSelect* Ifc4x3_rc2::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc2::IfcClassificationSelect>(true); }
@@ -20285,7 +20285,7 @@ void Ifc4x3_rc2::IfcRelAssociatesClassification::setRelatingClassification(::Ifc
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesClassification::declaration() const { return *IFC4X3_RC2_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesClassification::Class() { return *IFC4X3_RC2_IfcRelAssociatesClassification_type; }
Ifc4x3_rc2::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4x3_rc2::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4x3_rc2::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -20297,7 +20297,7 @@ void Ifc4x3_rc2::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4x3_rc2:
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesConstraint::declaration() const { return *IFC4X3_RC2_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesConstraint::Class() { return *IFC4X3_RC2_IfcRelAssociatesConstraint_type; }
Ifc4x3_rc2::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc2::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4x3_rc2::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc2::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4x3_rc2::IfcDocumentSelect* Ifc4x3_rc2::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc2::IfcDocumentSelect>(true); }
@@ -20307,7 +20307,7 @@ void Ifc4x3_rc2::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4x3_rc2::Ifc
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesDocument::declaration() const { return *IFC4X3_RC2_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesDocument::Class() { return *IFC4X3_RC2_IfcRelAssociatesDocument_type; }
Ifc4x3_rc2::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4x3_rc2::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4x3_rc2::IfcLibrarySelect* Ifc4x3_rc2::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc2::IfcLibrarySelect>(true); }
@@ -20317,7 +20317,7 @@ void Ifc4x3_rc2::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4x3_rc2::IfcLi
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesLibrary::declaration() const { return *IFC4X3_RC2_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesLibrary::Class() { return *IFC4X3_RC2_IfcRelAssociatesLibrary_type; }
Ifc4x3_rc2::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4x3_rc2::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4x3_rc2::IfcMaterialSelect* Ifc4x3_rc2::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc2::IfcMaterialSelect>(true); }
@@ -20327,7 +20327,7 @@ void Ifc4x3_rc2::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4x3_rc2::Ifc
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesMaterial::declaration() const { return *IFC4X3_RC2_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesMaterial::Class() { return *IFC4X3_RC2_IfcRelAssociatesMaterial_type; }
Ifc4x3_rc2::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4x3_rc2::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesProfileDef
::Ifc4x3_rc2::IfcProfileDef* Ifc4x3_rc2::IfcRelAssociatesProfileDef::RelatingProfileDef() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc2::IfcProfileDef>(true); }
@@ -20337,7 +20337,7 @@ void Ifc4x3_rc2::IfcRelAssociatesProfileDef::setRelatingProfileDef(::Ifc4x3_rc2:
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesProfileDef::declaration() const { return *IFC4X3_RC2_IfcRelAssociatesProfileDef_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelAssociatesProfileDef::Class() { return *IFC4X3_RC2_IfcRelAssociatesProfileDef_type; }
Ifc4x3_rc2::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelAssociatesProfileDef_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
+Ifc4x3_rc2::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -20496,14 +20496,14 @@ Ifc4x3_rc2::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::If
// Function implementations for IfcRelDeclares
::Ifc4x3_rc2::IfcContext* Ifc4x3_rc2::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc2::IfcContext>(true); }
void Ifc4x3_rc2::IfcRelDeclares::setRelatingContext(::Ifc4x3_rc2::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4x3_rc2::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr Ifc4x3_rc2::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4x3_rc2::IfcDefinitionSelect >(); }
+void Ifc4x3_rc2::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcRelDeclares::declaration() const { return *IFC4X3_RC2_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelDeclares::Class() { return *IFC4X3_RC2_IfcRelDeclares_type; }
Ifc4x3_rc2::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc2::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4x3_rc2::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc2::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -20648,8 +20648,8 @@ Ifc4x3_rc2::IfcRelProjectsElement::IfcRelProjectsElement(IfcEntityInstanceData*
Ifc4x3_rc2::IfcRelProjectsElement::IfcRelProjectsElement(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc2::IfcElement* v5_RelatingElement, ::Ifc4x3_rc2::IfcFeatureElementAddition* v6_RelatedFeatureElement) : IfcRelDecomposes((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelProjectsElement_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingElement));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedFeatureElement));data_->setArgument(5,attr);} }
// Function implementations for IfcRelReferencedInSpatialStructure
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcSpatialReferenceSelect >::ptr Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_rc2::IfcSpatialReferenceSelect >(); }
+void Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of< ::Ifc4x3_rc2::IfcSpatialReferenceSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
::Ifc4x3_rc2::IfcSpatialElement* Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::RelatingStructure() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc2::IfcSpatialElement>(true); }
void Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4x3_rc2::IfcSpatialElement* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
@@ -20657,7 +20657,7 @@ void Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4
const IfcParse::entity& Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::declaration() const { return *IFC4X3_RC2_IfcRelReferencedInSpatialStructure_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::Class() { return *IFC4X3_RC2_IfcRelReferencedInSpatialStructure_type; }
Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(IfcEntityInstanceData* e) : IfcRelConnects((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcRelReferencedInSpatialStructure_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_rc2::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
+Ifc4x3_rc2::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_rc2::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
// Function implementations for IfcRelSequence
::Ifc4x3_rc2::IfcProcess* Ifc4x3_rc2::IfcRelSequence::RelatingProcess() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc2::IfcProcess>(true); }
@@ -20829,8 +20829,8 @@ Ifc4x3_rc2::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((IfcE
Ifc4x3_rc2::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc2::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr Ifc4x3_rc2::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc2::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc2::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4x3_rc2::IfcApproval* Ifc4x3_rc2::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc2::IfcApproval>(true); }
void Ifc4x3_rc2::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_rc2::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -20838,19 +20838,19 @@ void Ifc4x3_rc2::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_r
const IfcParse::entity& Ifc4x3_rc2::IfcResourceApprovalRelationship::declaration() const { return *IFC4X3_RC2_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcResourceApprovalRelationship::Class() { return *IFC4X3_RC2_IfcResourceApprovalRelationship_type; }
Ifc4x3_rc2::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc2::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4x3_rc2::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc2::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4x3_rc2::IfcConstraint* Ifc4x3_rc2::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc2::IfcConstraint>(true); }
void Ifc4x3_rc2::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4x3_rc2::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc2::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr Ifc4x3_rc2::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc2::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc2::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcResourceConstraintRelationship::declaration() const { return *IFC4X3_RC2_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcResourceConstraintRelationship::Class() { return *IFC4X3_RC2_IfcResourceConstraintRelationship_type; }
Ifc4x3_rc2::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_rc2::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4x3_rc2::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -21259,14 +21259,14 @@ Ifc4x3_rc2::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData
Ifc4x3_rc2::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x3_rc2::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4x3_rc2::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc2::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcShell >::ptr Ifc4x3_rc2::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc2::IfcShell >(); }
+void Ifc4x3_rc2::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4x3_rc2::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcShellBasedSurfaceModel::declaration() const { return *IFC4X3_RC2_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcShellBasedSurfaceModel::Class() { return *IFC4X3_RC2_IfcShellBasedSurfaceModel_type; }
Ifc4x3_rc2::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4x3_rc2::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4x3_rc2::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSign
boost::optional< ::Ifc4x3_rc2::IfcSignTypeEnum::Value > Ifc4x3_rc2::IfcSign::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc2::IfcSignTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22075,8 +22075,8 @@ Ifc4x3_rc2::IfcStyleModel::IfcStyleModel(::Ifc4x3_rc2::IfcRepresentationContext*
// Function implementations for IfcStyledItem
::Ifc4x3_rc2::IfcRepresentationItem* Ifc4x3_rc2::IfcStyledItem::Item() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc2::IfcRepresentationItem>(true); }
void Ifc4x3_rc2::IfcStyledItem::setItem(::Ifc4x3_rc2::IfcRepresentationItem* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcStyledItem::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc2::IfcStyledItem::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcStyleAssignmentSelect >::ptr Ifc4x3_rc2::IfcStyledItem::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc2::IfcStyleAssignmentSelect >(); }
+void Ifc4x3_rc2::IfcStyledItem::setStyles(aggregate_of< ::Ifc4x3_rc2::IfcStyleAssignmentSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< std::string > Ifc4x3_rc2::IfcStyledItem::Name() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
void Ifc4x3_rc2::IfcStyledItem::setName(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -22084,7 +22084,7 @@ void Ifc4x3_rc2::IfcStyledItem::setName(boost::optional< std::string > v) { {Ifc
const IfcParse::entity& Ifc4x3_rc2::IfcStyledItem::declaration() const { return *IFC4X3_RC2_IfcStyledItem_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcStyledItem::Class() { return *IFC4X3_RC2_IfcStyledItem_type; }
Ifc4x3_rc2::IfcStyledItem::IfcStyledItem(IfcEntityInstanceData* e) : IfcRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcStyledItem_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcStyledItem::IfcStyledItem(::Ifc4x3_rc2::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc2::IfcStyledItem::IfcStyledItem(::Ifc4x3_rc2::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4x3_rc2::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name) : IfcRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcStyledItem_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Item));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Styles)->generalize());data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcStyledRepresentation
@@ -22205,14 +22205,14 @@ Ifc4x3_rc2::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::opti
// Function implementations for IfcSurfaceStyle
::Ifc4x3_rc2::IfcSurfaceSide::Value Ifc4x3_rc2::IfcSurfaceStyle::Side() const { return ::Ifc4x3_rc2::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4x3_rc2::IfcSurfaceStyle::setSide(::Ifc4x3_rc2::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_rc2::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc2::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcSurfaceStyleElementSelect >::ptr Ifc4x3_rc2::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc2::IfcSurfaceStyleElementSelect >(); }
+void Ifc4x3_rc2::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4x3_rc2::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcSurfaceStyle::declaration() const { return *IFC4X3_RC2_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcSurfaceStyle::Class() { return *IFC4X3_RC2_IfcSurfaceStyle_type; }
Ifc4x3_rc2::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_rc2::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_rc2::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4x3_rc2::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_rc2::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_rc2::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_rc2::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4x3_rc2::IfcColourRgb* Ifc4x3_rc2::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc2::IfcColourRgb>(true); }
@@ -22467,8 +22467,8 @@ Ifc4x3_rc2::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil::
Ifc4x3_rc2::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4x3_rc2::IfcUnit* v4_Unit, ::Ifc4x3_rc2::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc2::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc2::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > Ifc4x3_rc2::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc2::IfcValue >(); }
+void Ifc4x3_rc2::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4x3_rc2::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4x3_rc2::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -22476,7 +22476,7 @@ void Ifc4x3_rc2::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrit
const IfcParse::entity& Ifc4x3_rc2::IfcTableRow::declaration() const { return *IFC4X3_RC2_IfcTableRow_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcTableRow::Class() { return *IFC4X3_RC2_IfcTableRow_type; }
Ifc4x3_rc2::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC2_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4x3_rc2::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4x3_rc2::IfcTankTypeEnum::Value > Ifc4x3_rc2::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc2::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22888,14 +22888,14 @@ Ifc4x3_rc2::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::If
Ifc4x3_rc2::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3_rc2::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3_rc2::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3_rc2::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4x3_rc2::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4x3_rc2::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc2::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr Ifc4x3_rc2::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc2::IfcValue >(); }
+void Ifc4x3_rc2::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcTimeSeriesValue::declaration() const { return *IFC4X3_RC2_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcTimeSeriesValue::Class() { return *IFC4X3_RC2_IfcTimeSeriesValue_type; }
Ifc4x3_rc2::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC2_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4x3_rc2::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -23048,10 +23048,10 @@ Ifc4x3_rc2::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::I
// Function implementations for IfcTrimmedCurve
::Ifc4x3_rc2::IfcCurve* Ifc4x3_rc2::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc2::IfcCurve>(true); }
void Ifc4x3_rc2::IfcTrimmedCurve::setBasisCurve(::Ifc4x3_rc2::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc2::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc2::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr Ifc4x3_rc2::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc2::IfcTrimmingSelect >(); }
+void Ifc4x3_rc2::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr Ifc4x3_rc2::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc2::IfcTrimmingSelect >(); }
+void Ifc4x3_rc2::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4x3_rc2::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4x3_rc2::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4x3_rc2::IfcTrimmingPreference::Value Ifc4x3_rc2::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x3_rc2::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -23061,7 +23061,7 @@ void Ifc4x3_rc2::IfcTrimmedCurve::setMasterRepresentation(::Ifc4x3_rc2::IfcTrimm
const IfcParse::entity& Ifc4x3_rc2::IfcTrimmedCurve::declaration() const { return *IFC4X3_RC2_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcTrimmedCurve::Class() { return *IFC4X3_RC2_IfcTrimmedCurve_type; }
Ifc4x3_rc2::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC2_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_rc2::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc2::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_rc2::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4x3_rc2::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_rc2::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc2::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_rc2::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4x3_rc2::IfcTubeBundleTypeEnum::Value > Ifc4x3_rc2::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc2::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -23162,14 +23162,14 @@ Ifc4x3_rc2::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) :
Ifc4x3_rc2::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x3_rc2::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4x3_rc2::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4x3_rc2::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4x3_rc2::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc2::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc2::IfcUnit >::ptr Ifc4x3_rc2::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc2::IfcUnit >(); }
+void Ifc4x3_rc2::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4x3_rc2::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc2::IfcUnitAssignment::declaration() const { return *IFC4X3_RC2_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4x3_rc2::IfcUnitAssignment::Class() { return *IFC4X3_RC2_IfcUnitAssignment_type; }
Ifc4x3_rc2::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC2_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc2::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4x3_rc2::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4x3_rc2::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC2_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4x3_rc2::IfcUnitaryControlElementTypeEnum::Value > Ifc4x3_rc2::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc2::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4x3_rc2.h b/src/ifcparse/Ifc4x3_rc2.h
index 473b69a065..ce2f0b0f75 100644
--- a/src/ifcparse/Ifc4x3_rc2.h
+++ b/src/ifcparse/Ifc4x3_rc2.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,16 +201,19 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveMeasureSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveMeasureSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -212,6 +226,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -221,6 +236,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -232,6 +248,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -310,6 +327,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -322,11 +340,13 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
class IFC_PARSE_API IfcFacilityPartTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFacilityPartTypeSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -337,6 +357,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -346,6 +367,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -358,6 +380,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -365,16 +388,19 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
class IFC_PARSE_API IfcImpactProtectionDeviceTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcImpactProtectionDeviceTypeSelect > list;
};
class IFC_PARSE_API IfcInterferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcInterferenceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -386,6 +412,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -400,6 +427,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -426,11 +454,13 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
class IFC_PARSE_API IfcLinearAxisSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLinearAxisSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -461,6 +491,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -474,6 +505,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -490,6 +522,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -497,6 +530,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -504,6 +538,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -511,6 +546,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -518,6 +554,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -529,6 +566,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// Definition from ISO/CD 10303-46:1992: The presentation style select is a selection of one of many kinds of styles, a different one for each kind of geometric representation item to be styled.
///
@@ -541,6 +579,7 @@ public:
class IFC_PARSE_API IfcPresentationStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPresentationStyleSelect > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -555,11 +594,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -573,11 +614,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -585,6 +628,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -598,6 +642,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -605,11 +650,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -625,6 +672,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -648,6 +696,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -664,6 +713,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -675,6 +725,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -691,11 +742,13 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
class IFC_PARSE_API IfcSpatialReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpatialReferenceSelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -710,6 +763,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -723,6 +777,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// The style assignment select is a selection of two wasy of assigning presentation styles to an IfcStyledItem.
///
@@ -737,6 +792,7 @@ public:
class IFC_PARSE_API IfcStyleAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStyleAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -750,6 +806,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -763,6 +820,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -774,12 +832,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -787,11 +847,13 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcTransportElementTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTransportElementTypeSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -801,6 +863,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -818,6 +881,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -832,6 +896,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -844,6 +909,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -851,6 +917,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -11048,12 +11115,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -11227,15 +11294,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4x3_rc2::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4x3_rc2::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4x3_rc2::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_rc2::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4x3_rc2::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_rc2::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -12026,15 +12093,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4x3_rc2::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc2::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -12071,7 +12138,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc2::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -12098,12 +12165,12 @@ public:
class IFC_PARSE_API IfcPresentationStyleAssignment : public IfcUtil::IfcBaseEntity, public IfcStyleAssignmentSelect {
public:
/// A set of presentation styles that are assigned to styled items.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyleSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyleSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationStyleAssignment (IfcEntityInstanceData* e);
- IfcPresentationStyleAssignment (aggregate_of_instance::ptr v1_Styles);
+ IfcPresentationStyleAssignment (aggregate_of< ::Ifc4x3_rc2::IfcPresentationStyleSelect >::ptr v1_Styles);
typedef aggregate_of< IfcPresentationStyleAssignment > list;
};
/// IfcProductRepresentation defines a representation of a
@@ -12435,15 +12502,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_rc2::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_rc2::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_rc2::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_rc2::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -13293,15 +13360,15 @@ public:
/// for file based exchange.
///
/// NOTE Only the select item IfcPresentationStyle shall be used from IFC2x4 onwards, the IfcPresentationStyleAssignment has been deprecated.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcStyleAssignmentSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_rc2::IfcStyleAssignmentSelect >::ptr v);
/// The word, or group of words, by which the styled item is referred to.
boost::optional< std::string > Name() const;
void setName(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcStyledItem (IfcEntityInstanceData* e);
- IfcStyledItem (::Ifc4x3_rc2::IfcRepresentationItem* v1_Item, aggregate_of_instance::ptr v2_Styles, boost::optional< std::string > v3_Name);
+ IfcStyledItem (::Ifc4x3_rc2::IfcRepresentationItem* v1_Item, aggregate_of< ::Ifc4x3_rc2::IfcStyleAssignmentSelect >::ptr v2_Styles, boost::optional< std::string > v3_Name);
typedef aggregate_of< IfcStyledItem > list;
};
/// The IfcStyledRepresentation represents the concept of a styled presentation being a representation of a product or a product component, like material. within a representation context. This representation context does not need to be (but may be) a geometric representation context.
@@ -13354,12 +13421,12 @@ public:
::Ifc4x3_rc2::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4x3_rc2::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_rc2::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_rc2::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_rc2::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_rc2::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13668,15 +13735,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -14225,12 +14292,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -14296,12 +14363,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4x3_rc2::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4x3_rc2::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -15360,8 +15427,8 @@ public:
::Ifc4x3_rc2::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4x3_rc2::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -15402,7 +15469,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc2::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc2::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc2::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc2::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc2::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc2::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -15643,12 +15710,12 @@ public:
::Ifc4x3_rc2::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4x3_rc2::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15859,14 +15926,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle, public IfcPresentationStyleSelect {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4x3_rc2::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelOrDraughting() const;
void setModelOrDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_rc2::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -16020,12 +16087,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4x3_rc2::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4x3_rc2::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -18077,15 +18144,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4x3_rc2::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4x3_rc2::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc2::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc2::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -18114,12 +18181,12 @@ public:
::Ifc4x3_rc2::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4x3_rc2::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc2::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_rc2::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -18375,12 +18442,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4x3_rc2::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4x3_rc2::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -21408,7 +21475,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4x3_rc2::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -22539,15 +22606,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4x3_rc2::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4x3_rc2::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_rc2::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_rc2::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -22620,15 +22687,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_rc2::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_rc2::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_rc2::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_rc2::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22968,13 +23035,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22992,7 +23059,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc2::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc2::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc2::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc2::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc2::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc2::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -23518,12 +23585,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -23537,7 +23604,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -23578,7 +23645,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -23595,7 +23662,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc2::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc2::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -23613,7 +23680,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -23631,7 +23698,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -23736,7 +23803,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
@@ -23747,7 +23814,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesProfileDef (IfcEntityInstanceData* e);
- IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcProfileDef* v6_RelatingProfileDef);
+ IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc2::IfcProfileDef* v6_RelatingProfileDef);
typedef aggregate_of< IfcRelAssociatesProfileDef > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -24220,12 +24287,12 @@ public:
::Ifc4x3_rc2::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4x3_rc2::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc2::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc2::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_rc2::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -24738,8 +24805,8 @@ class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects
public:
/// Set of products, which are referenced within this level of the spatial structure hierarchy.
/// NOTEÂ Referenced elements are contained elsewhere within the spatial structure, they are referenced additionally by this spatial structure element, e.g., because they span several stories.
- aggregate_of_instance::ptr RelatedElements() const;
- void setRelatedElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcSpatialReferenceSelect >::ptr RelatedElements() const;
+ void setRelatedElements(aggregate_of< ::Ifc4x3_rc2::IfcSpatialReferenceSelect >::ptr v);
/// Spatial structure element, within which the element is referenced. Any element can be contained within zero, one or many elements of the project spatial and zoning structure.
///
/// IFC2x Edition 4 CHANGEÂ The attribute relatingStructure as been promoted to the new supertype IfcSpatialElement with upward compatibility for file based exchange.
@@ -24748,7 +24815,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelReferencedInSpatialStructure (IfcEntityInstanceData* e);
- IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_rc2::IfcSpatialElement* v6_RelatingStructure);
+ IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc2::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_rc2::IfcSpatialElement* v6_RelatingStructure);
typedef aggregate_of< IfcRelReferencedInSpatialStructure > list;
};
/// IfcRelSequence is a
@@ -31322,14 +31389,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4x3_rc2::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4x3_rc2::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcSegmentIndexSelect >::ptr > v);
boost::optional< bool > SelfIntersect() const;
void setSelfIntersect(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4x3_rc2::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4x3_rc2::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -33460,12 +33527,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc2::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc2::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
/// The aggregation relationship
@@ -35759,11 +35826,11 @@ public:
::Ifc4x3_rc2::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4x3_rc2::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -35773,7 +35840,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4x3_rc2::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc2::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4x3_rc2::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_rc2::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc2::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -44639,12 +44706,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc2::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_rc2::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc2::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc2::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc2::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/Ifc4x3_rc3-definitions.h b/src/ifcparse/Ifc4x3_rc3-definitions.h
index 1b4bdb1860..6cd1bcef66 100644
--- a/src/ifcparse/Ifc4x3_rc3-definitions.h
+++ b/src/ifcparse/Ifc4x3_rc3-definitions.h
@@ -4004,3 +4004,53 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectObjectAssignment
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSiUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcGradient
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4x3_rc3.cpp b/src/ifcparse/Ifc4x3_rc3.cpp
index 3733a9ede0..91ae19c6ee 100644
--- a/src/ifcparse/Ifc4x3_rc3.cpp
+++ b/src/ifcparse/Ifc4x3_rc3.cpp
@@ -15701,8 +15701,8 @@ boost::optional< std::string > Ifc4x3_rc3::IfcDocumentInformation::Revision() co
void Ifc4x3_rc3::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4x3_rc3::IfcActorSelect* Ifc4x3_rc3::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4x3_rc3::IfcActorSelect>(true); }
void Ifc4x3_rc3::IfcDocumentInformation::setDocumentOwner(::Ifc4x3_rc3::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc3::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4x3_rc3::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcActorSelect >::ptr > Ifc4x3_rc3::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4x3_rc3::IfcActorSelect >(); }
+void Ifc4x3_rc3::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4x3_rc3::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4x3_rc3::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4x3_rc3::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -15726,7 +15726,7 @@ void Ifc4x3_rc3::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4x3_rc3
const IfcParse::entity& Ifc4x3_rc3::IfcDocumentInformation::declaration() const { return *IFC4X3_RC3_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcDocumentInformation::Class() { return *IFC4X3_RC3_IfcDocumentInformation_type; }
Ifc4x3_rc3::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc3::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_rc3::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_rc3::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4x3_rc3::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc3::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_rc3::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_rc3::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4x3_rc3::IfcDocumentInformation* Ifc4x3_rc3::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc3::IfcDocumentInformation>(true); }
@@ -16420,14 +16420,14 @@ Ifc4x3_rc3::IfcExternalReference::IfcExternalReference(boost::optional< std::str
// Function implementations for IfcExternalReferenceRelationship
::Ifc4x3_rc3::IfcExternalReference* Ifc4x3_rc3::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc3::IfcExternalReference>(true); }
void Ifc4x3_rc3::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4x3_rc3::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc3::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr Ifc4x3_rc3::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc3::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc3::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcExternalReferenceRelationship::declaration() const { return *IFC4X3_RC3_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcExternalReferenceRelationship::Class() { return *IFC4X3_RC3_IfcExternalReferenceRelationship_type; }
Ifc4x3_rc3::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_rc3::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4x3_rc3::IfcExternalSpatialElementTypeEnum::Value > Ifc4x3_rc3::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc3::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -16672,8 +16672,8 @@ Ifc4x3_rc3::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntity
Ifc4x3_rc3::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc3::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc3::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc3::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcFillStyleSelect >::ptr Ifc4x3_rc3::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc3::IfcFillStyleSelect >(); }
+void Ifc4x3_rc3::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4x3_rc3::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_rc3::IfcFillAreaStyle::ModelOrDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_rc3::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -16681,7 +16681,7 @@ void Ifc4x3_rc3::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool >
const IfcParse::entity& Ifc4x3_rc3::IfcFillAreaStyle::declaration() const { return *IFC4X3_RC3_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcFillAreaStyle::Class() { return *IFC4X3_RC3_IfcFillAreaStyle_type; }
Ifc4x3_rc3::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc3::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_rc3::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4x3_rc3::IfcCurveStyle* Ifc4x3_rc3::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc3::IfcCurveStyle>(true); }
@@ -17001,7 +17001,7 @@ Ifc4x3_rc3::IfcGeographicElementType::IfcGeographicElementType(std::string v1_Gl
const IfcParse::entity& Ifc4x3_rc3::IfcGeometricCurveSet::declaration() const { return *IFC4X3_RC3_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcGeometricCurveSet::Class() { return *IFC4X3_RC3_IfcGeometricCurveSet_type; }
Ifc4x3_rc3::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_rc3::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4x3_rc3::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4x3_rc3::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -17046,14 +17046,14 @@ Ifc4x3_rc3::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubC
Ifc4x3_rc3::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4x3_rc3::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4x3_rc3::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4x3_rc3::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc3::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcGeometricSetSelect >::ptr Ifc4x3_rc3::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc3::IfcGeometricSetSelect >(); }
+void Ifc4x3_rc3::IfcGeometricSet::setElements(aggregate_of< ::Ifc4x3_rc3::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcGeometricSet::declaration() const { return *IFC4X3_RC3_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcGeometricSet::Class() { return *IFC4X3_RC3_IfcGeometricSet_type; }
Ifc4x3_rc3::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_rc3::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4x3_rc3::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeomodel
@@ -17295,8 +17295,8 @@ Ifc4x3_rc3::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x3_rc3::IfcTessellate
// Function implementations for IfcIndexedPolyCurve
::Ifc4x3_rc3::IfcCartesianPointList* Ifc4x3_rc3::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc3::IfcCartesianPointList>(true); }
void Ifc4x3_rc3::IfcIndexedPolyCurve::setPoints(::Ifc4x3_rc3::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc3::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc3::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcSegmentIndexSelect >::ptr > Ifc4x3_rc3::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc3::IfcSegmentIndexSelect >(); }
+void Ifc4x3_rc3::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_rc3::IfcIndexedPolyCurve::SelfIntersect() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_rc3::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -17304,7 +17304,7 @@ void Ifc4x3_rc3::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v
const IfcParse::entity& Ifc4x3_rc3::IfcIndexedPolyCurve::declaration() const { return *IFC4X3_RC3_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcIndexedPolyCurve::Class() { return *IFC4X3_RC3_IfcIndexedPolyCurve_type; }
Ifc4x3_rc3::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_rc3::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc3::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_rc3::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4x3_rc3::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -17410,14 +17410,14 @@ Ifc4x3_rc3::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name,
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4x3_rc3::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_rc3::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc3::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr Ifc4x3_rc3::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc3::IfcValue >(); }
+void Ifc4x3_rc3::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4X3_RC3_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcIrregularTimeSeriesValue::Class() { return *IFC4X3_RC3_IfcIrregularTimeSeriesValue_type; }
Ifc4x3_rc3::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC3_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4x3_rc3::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4x3_rc3::IfcJunctionBoxTypeEnum::Value > Ifc4x3_rc3::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc3::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -17854,8 +17854,8 @@ Ifc4x3_rc3::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDefi
Ifc4x3_rc3::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc3::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcClassificationSelect >::ptr Ifc4x3_rc3::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc3::IfcClassificationSelect >(); }
+void Ifc4x3_rc3::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4x3_rc3::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4x3_rc3::IfcMaterial* Ifc4x3_rc3::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4x3_rc3::IfcMaterial>(true); }
void Ifc4x3_rc3::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4x3_rc3::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -17863,7 +17863,7 @@ void Ifc4x3_rc3::IfcMaterialClassificationRelationship::setClassifiedMaterial(::
const IfcParse::entity& Ifc4x3_rc3::IfcMaterialClassificationRelationship::declaration() const { return *IFC4X3_RC3_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcMaterialClassificationRelationship::Class() { return *IFC4X3_RC3_IfcMaterialClassificationRelationship_type; }
Ifc4x3_rc3::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC3_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_rc3::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4x3_rc3::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4x3_rc3::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_rc3::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4x3_rc3::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19119,8 +19119,8 @@ std::string Ifc4x3_rc3::IfcPresentationLayerAssignment::Name() const { std::str
void Ifc4x3_rc3::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4x3_rc3::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4x3_rc3::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc3::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcLayeredItem >::ptr Ifc4x3_rc3::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc3::IfcLayeredItem >(); }
+void Ifc4x3_rc3::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4x3_rc3::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4x3_rc3::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4x3_rc3::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -19128,7 +19128,7 @@ void Ifc4x3_rc3::IfcPresentationLayerAssignment::setIdentifier(boost::optional<
const IfcParse::entity& Ifc4x3_rc3::IfcPresentationLayerAssignment::declaration() const { return *IFC4X3_RC3_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcPresentationLayerAssignment::Class() { return *IFC4X3_RC3_IfcPresentationLayerAssignment_type; }
Ifc4x3_rc3::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC3_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4x3_rc3::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4x3_rc3::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -19144,7 +19144,7 @@ void Ifc4x3_rc3::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::I
const IfcParse::entity& Ifc4x3_rc3::IfcPresentationLayerWithStyle::declaration() const { return *IFC4X3_RC3_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcPresentationLayerWithStyle::Class() { return *IFC4X3_RC3_IfcPresentationLayerWithStyle_type; }
Ifc4x3_rc3::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc3::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4x3_rc3::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc3::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4x3_rc3::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19376,8 +19376,8 @@ Ifc4x3_rc3::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship
Ifc4x3_rc3::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcProperty* v3_DependingProperty, ::Ifc4x3_rc3::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc3::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc3::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > Ifc4x3_rc3::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc3::IfcValue >(); }
+void Ifc4x3_rc3::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_rc3::IfcPropertyEnumeration* Ifc4x3_rc3::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc3::IfcPropertyEnumeration>(true); }
void Ifc4x3_rc3::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_rc3::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19385,13 +19385,13 @@ void Ifc4x3_rc3::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_rc
const IfcParse::entity& Ifc4x3_rc3::IfcPropertyEnumeratedValue::declaration() const { return *IFC4X3_RC3_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcPropertyEnumeratedValue::Class() { return *IFC4X3_RC3_IfcPropertyEnumeratedValue_type; }
Ifc4x3_rc3::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_rc3::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4x3_rc3::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_rc3::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4x3_rc3::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_rc3::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc3::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr Ifc4x3_rc3::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc3::IfcValue >(); }
+void Ifc4x3_rc3::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4x3_rc3::IfcUnit* Ifc4x3_rc3::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc3::IfcUnit>(true); }
void Ifc4x3_rc3::IfcPropertyEnumeration::setUnit(::Ifc4x3_rc3::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -19399,11 +19399,11 @@ void Ifc4x3_rc3::IfcPropertyEnumeration::setUnit(::Ifc4x3_rc3::IfcUnit* v) { {If
const IfcParse::entity& Ifc4x3_rc3::IfcPropertyEnumeration::declaration() const { return *IFC4X3_RC3_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcPropertyEnumeration::Class() { return *IFC4X3_RC3_IfcPropertyEnumeration_type; }
Ifc4x3_rc3::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_rc3::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4x3_rc3::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_rc3::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc3::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc3::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > Ifc4x3_rc3::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc3::IfcValue >(); }
+void Ifc4x3_rc3::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_rc3::IfcUnit* Ifc4x3_rc3::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc3::IfcUnit>(true); }
void Ifc4x3_rc3::IfcPropertyListValue::setUnit(::Ifc4x3_rc3::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19411,7 +19411,7 @@ void Ifc4x3_rc3::IfcPropertyListValue::setUnit(::Ifc4x3_rc3::IfcUnit* v) { {IfcW
const IfcParse::entity& Ifc4x3_rc3::IfcPropertyListValue::declaration() const { return *IFC4X3_RC3_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcPropertyListValue::Class() { return *IFC4X3_RC3_IfcPropertyListValue_type; }
Ifc4x3_rc3::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_rc3::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4x3_rc3::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_rc3::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4x3_rc3::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -19474,10 +19474,10 @@ Ifc4x3_rc3::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData
Ifc4x3_rc3::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcValue* v3_NominalValue, ::Ifc4x3_rc3::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc3::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc3::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc3::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc3::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > Ifc4x3_rc3::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc3::IfcValue >(); }
+void Ifc4x3_rc3::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > Ifc4x3_rc3::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc3::IfcValue >(); }
+void Ifc4x3_rc3::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4x3_rc3::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4x3_rc3::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4x3_rc3::IfcUnit* Ifc4x3_rc3::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc3::IfcUnit>(true); }
@@ -19491,7 +19491,7 @@ void Ifc4x3_rc3::IfcPropertyTableValue::setCurveInterpolation(boost::optional< :
const IfcParse::entity& Ifc4x3_rc3::IfcPropertyTableValue::declaration() const { return *IFC4X3_RC3_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcPropertyTableValue::Class() { return *IFC4X3_RC3_IfcPropertyTableValue_type; }
Ifc4x3_rc3::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc3::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc3::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc3::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_rc3::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4x3_rc3::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc3::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc3::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc3::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_rc3::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -19974,14 +19974,14 @@ boost::optional< ::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3_rc3:
void Ifc4x3_rc3::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4x3_rc3::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4x3_rc3::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc3::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4x3_rc3::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > Ifc4x3_rc3::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4x3_rc3::IfcBendingParameterSelect >(); }
+void Ifc4x3_rc3::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcReinforcingBarType::declaration() const { return *IFC4X3_RC3_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcReinforcingBarType::Class() { return *IFC4X3_RC3_IfcReinforcingBarType_type; }
Ifc4x3_rc3::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc3::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4x3_rc3::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc3::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4x3_rc3::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -20048,14 +20048,14 @@ boost::optional< double > Ifc4x3_rc3::IfcReinforcingMeshType::TransverseBarSpaci
void Ifc4x3_rc3::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4x3_rc3::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4x3_rc3::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc3::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4x3_rc3::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > Ifc4x3_rc3::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4x3_rc3::IfcBendingParameterSelect >(); }
+void Ifc4x3_rc3::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcReinforcingMeshType::declaration() const { return *IFC4X3_RC3_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcReinforcingMeshType::Class() { return *IFC4X3_RC3_IfcReinforcingMeshType_type; }
Ifc4x3_rc3::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc3::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4x3_rc3::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc3::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAggregates
::Ifc4x3_rc3::IfcObjectDefinition* Ifc4x3_rc3::IfcRelAggregates::RelatingObject() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc3::IfcObjectDefinition>(true); }
@@ -20156,14 +20156,14 @@ Ifc4x3_rc3::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceDa
Ifc4x3_rc3::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4x3_rc3::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc3::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v6_RelatedObjectsType,::Ifc4x3_rc3::IfcObjectTypeEnum::ToString(*v6_RelatedObjectsType))));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_rc3::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr Ifc4x3_rc3::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_rc3::IfcDefinitionSelect >(); }
+void Ifc4x3_rc3::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociates::declaration() const { return *IFC4X3_RC3_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociates::Class() { return *IFC4X3_RC3_IfcRelAssociates_type; }
Ifc4x3_rc3::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4x3_rc3::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4x3_rc3::IfcApproval* Ifc4x3_rc3::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc3::IfcApproval>(true); }
@@ -20173,7 +20173,7 @@ void Ifc4x3_rc3::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4x3_rc3::Ifc
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesApproval::declaration() const { return *IFC4X3_RC3_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesApproval::Class() { return *IFC4X3_RC3_IfcRelAssociatesApproval_type; }
Ifc4x3_rc3::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4x3_rc3::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4x3_rc3::IfcClassificationSelect* Ifc4x3_rc3::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc3::IfcClassificationSelect>(true); }
@@ -20183,7 +20183,7 @@ void Ifc4x3_rc3::IfcRelAssociatesClassification::setRelatingClassification(::Ifc
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesClassification::declaration() const { return *IFC4X3_RC3_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesClassification::Class() { return *IFC4X3_RC3_IfcRelAssociatesClassification_type; }
Ifc4x3_rc3::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4x3_rc3::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4x3_rc3::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -20195,7 +20195,7 @@ void Ifc4x3_rc3::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4x3_rc3:
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesConstraint::declaration() const { return *IFC4X3_RC3_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesConstraint::Class() { return *IFC4X3_RC3_IfcRelAssociatesConstraint_type; }
Ifc4x3_rc3::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc3::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4x3_rc3::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc3::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4x3_rc3::IfcDocumentSelect* Ifc4x3_rc3::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc3::IfcDocumentSelect>(true); }
@@ -20205,7 +20205,7 @@ void Ifc4x3_rc3::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4x3_rc3::Ifc
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesDocument::declaration() const { return *IFC4X3_RC3_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesDocument::Class() { return *IFC4X3_RC3_IfcRelAssociatesDocument_type; }
Ifc4x3_rc3::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4x3_rc3::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4x3_rc3::IfcLibrarySelect* Ifc4x3_rc3::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc3::IfcLibrarySelect>(true); }
@@ -20215,7 +20215,7 @@ void Ifc4x3_rc3::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4x3_rc3::IfcLi
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesLibrary::declaration() const { return *IFC4X3_RC3_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesLibrary::Class() { return *IFC4X3_RC3_IfcRelAssociatesLibrary_type; }
Ifc4x3_rc3::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4x3_rc3::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4x3_rc3::IfcMaterialSelect* Ifc4x3_rc3::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc3::IfcMaterialSelect>(true); }
@@ -20225,7 +20225,7 @@ void Ifc4x3_rc3::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4x3_rc3::Ifc
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesMaterial::declaration() const { return *IFC4X3_RC3_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesMaterial::Class() { return *IFC4X3_RC3_IfcRelAssociatesMaterial_type; }
Ifc4x3_rc3::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4x3_rc3::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesProfileDef
::Ifc4x3_rc3::IfcProfileDef* Ifc4x3_rc3::IfcRelAssociatesProfileDef::RelatingProfileDef() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc3::IfcProfileDef>(true); }
@@ -20235,7 +20235,7 @@ void Ifc4x3_rc3::IfcRelAssociatesProfileDef::setRelatingProfileDef(::Ifc4x3_rc3:
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesProfileDef::declaration() const { return *IFC4X3_RC3_IfcRelAssociatesProfileDef_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelAssociatesProfileDef::Class() { return *IFC4X3_RC3_IfcRelAssociatesProfileDef_type; }
Ifc4x3_rc3::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelAssociatesProfileDef_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
+Ifc4x3_rc3::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -20394,14 +20394,14 @@ Ifc4x3_rc3::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::If
// Function implementations for IfcRelDeclares
::Ifc4x3_rc3::IfcContext* Ifc4x3_rc3::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc3::IfcContext>(true); }
void Ifc4x3_rc3::IfcRelDeclares::setRelatingContext(::Ifc4x3_rc3::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4x3_rc3::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr Ifc4x3_rc3::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4x3_rc3::IfcDefinitionSelect >(); }
+void Ifc4x3_rc3::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcRelDeclares::declaration() const { return *IFC4X3_RC3_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelDeclares::Class() { return *IFC4X3_RC3_IfcRelDeclares_type; }
Ifc4x3_rc3::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc3::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4x3_rc3::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc3::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -20546,8 +20546,8 @@ Ifc4x3_rc3::IfcRelProjectsElement::IfcRelProjectsElement(IfcEntityInstanceData*
Ifc4x3_rc3::IfcRelProjectsElement::IfcRelProjectsElement(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc3::IfcElement* v5_RelatingElement, ::Ifc4x3_rc3::IfcFeatureElementAddition* v6_RelatedFeatureElement) : IfcRelDecomposes((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelProjectsElement_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingElement));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedFeatureElement));data_->setArgument(5,attr);} }
// Function implementations for IfcRelReferencedInSpatialStructure
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcSpatialReferenceSelect >::ptr Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_rc3::IfcSpatialReferenceSelect >(); }
+void Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of< ::Ifc4x3_rc3::IfcSpatialReferenceSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
::Ifc4x3_rc3::IfcSpatialElement* Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::RelatingStructure() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc3::IfcSpatialElement>(true); }
void Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4x3_rc3::IfcSpatialElement* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
@@ -20555,7 +20555,7 @@ void Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4
const IfcParse::entity& Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::declaration() const { return *IFC4X3_RC3_IfcRelReferencedInSpatialStructure_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::Class() { return *IFC4X3_RC3_IfcRelReferencedInSpatialStructure_type; }
Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(IfcEntityInstanceData* e) : IfcRelConnects((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcRelReferencedInSpatialStructure_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_rc3::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
+Ifc4x3_rc3::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_rc3::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
// Function implementations for IfcRelSequence
::Ifc4x3_rc3::IfcProcess* Ifc4x3_rc3::IfcRelSequence::RelatingProcess() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc3::IfcProcess>(true); }
@@ -20727,8 +20727,8 @@ Ifc4x3_rc3::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((IfcE
Ifc4x3_rc3::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc3::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr Ifc4x3_rc3::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc3::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc3::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4x3_rc3::IfcApproval* Ifc4x3_rc3::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc3::IfcApproval>(true); }
void Ifc4x3_rc3::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_rc3::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -20736,19 +20736,19 @@ void Ifc4x3_rc3::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_r
const IfcParse::entity& Ifc4x3_rc3::IfcResourceApprovalRelationship::declaration() const { return *IFC4X3_RC3_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcResourceApprovalRelationship::Class() { return *IFC4X3_RC3_IfcResourceApprovalRelationship_type; }
Ifc4x3_rc3::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc3::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4x3_rc3::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc3::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4x3_rc3::IfcConstraint* Ifc4x3_rc3::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc3::IfcConstraint>(true); }
void Ifc4x3_rc3::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4x3_rc3::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc3::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr Ifc4x3_rc3::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc3::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc3::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcResourceConstraintRelationship::declaration() const { return *IFC4X3_RC3_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcResourceConstraintRelationship::Class() { return *IFC4X3_RC3_IfcResourceConstraintRelationship_type; }
Ifc4x3_rc3::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_rc3::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4x3_rc3::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -21158,14 +21158,14 @@ Ifc4x3_rc3::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData
Ifc4x3_rc3::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x3_rc3::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4x3_rc3::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc3::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcShell >::ptr Ifc4x3_rc3::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc3::IfcShell >(); }
+void Ifc4x3_rc3::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4x3_rc3::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcShellBasedSurfaceModel::declaration() const { return *IFC4X3_RC3_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcShellBasedSurfaceModel::Class() { return *IFC4X3_RC3_IfcShellBasedSurfaceModel_type; }
Ifc4x3_rc3::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4x3_rc3::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4x3_rc3::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSign
boost::optional< ::Ifc4x3_rc3::IfcSignTypeEnum::Value > Ifc4x3_rc3::IfcSign::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc3::IfcSignTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22126,14 +22126,14 @@ Ifc4x3_rc3::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::opti
// Function implementations for IfcSurfaceStyle
::Ifc4x3_rc3::IfcSurfaceSide::Value Ifc4x3_rc3::IfcSurfaceStyle::Side() const { return ::Ifc4x3_rc3::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4x3_rc3::IfcSurfaceStyle::setSide(::Ifc4x3_rc3::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_rc3::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc3::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcSurfaceStyleElementSelect >::ptr Ifc4x3_rc3::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc3::IfcSurfaceStyleElementSelect >(); }
+void Ifc4x3_rc3::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4x3_rc3::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcSurfaceStyle::declaration() const { return *IFC4X3_RC3_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcSurfaceStyle::Class() { return *IFC4X3_RC3_IfcSurfaceStyle_type; }
Ifc4x3_rc3::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_rc3::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_rc3::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4x3_rc3::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_rc3::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_rc3::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_rc3::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4x3_rc3::IfcColourRgb* Ifc4x3_rc3::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc3::IfcColourRgb>(true); }
@@ -22388,8 +22388,8 @@ Ifc4x3_rc3::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil::
Ifc4x3_rc3::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4x3_rc3::IfcUnit* v4_Unit, ::Ifc4x3_rc3::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc3::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc3::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > Ifc4x3_rc3::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc3::IfcValue >(); }
+void Ifc4x3_rc3::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4x3_rc3::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4x3_rc3::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -22397,7 +22397,7 @@ void Ifc4x3_rc3::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrit
const IfcParse::entity& Ifc4x3_rc3::IfcTableRow::declaration() const { return *IFC4X3_RC3_IfcTableRow_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcTableRow::Class() { return *IFC4X3_RC3_IfcTableRow_type; }
Ifc4x3_rc3::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC3_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4x3_rc3::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4x3_rc3::IfcTankTypeEnum::Value > Ifc4x3_rc3::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc3::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22825,14 +22825,14 @@ Ifc4x3_rc3::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::If
Ifc4x3_rc3::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3_rc3::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3_rc3::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3_rc3::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4x3_rc3::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4x3_rc3::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc3::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr Ifc4x3_rc3::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc3::IfcValue >(); }
+void Ifc4x3_rc3::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcTimeSeriesValue::declaration() const { return *IFC4X3_RC3_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcTimeSeriesValue::Class() { return *IFC4X3_RC3_IfcTimeSeriesValue_type; }
Ifc4x3_rc3::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC3_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4x3_rc3::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -22967,10 +22967,10 @@ Ifc4x3_rc3::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::I
// Function implementations for IfcTrimmedCurve
::Ifc4x3_rc3::IfcCurve* Ifc4x3_rc3::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc3::IfcCurve>(true); }
void Ifc4x3_rc3::IfcTrimmedCurve::setBasisCurve(::Ifc4x3_rc3::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc3::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc3::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr Ifc4x3_rc3::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc3::IfcTrimmingSelect >(); }
+void Ifc4x3_rc3::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr Ifc4x3_rc3::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc3::IfcTrimmingSelect >(); }
+void Ifc4x3_rc3::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4x3_rc3::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4x3_rc3::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4x3_rc3::IfcTrimmingPreference::Value Ifc4x3_rc3::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x3_rc3::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -22980,7 +22980,7 @@ void Ifc4x3_rc3::IfcTrimmedCurve::setMasterRepresentation(::Ifc4x3_rc3::IfcTrimm
const IfcParse::entity& Ifc4x3_rc3::IfcTrimmedCurve::declaration() const { return *IFC4X3_RC3_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcTrimmedCurve::Class() { return *IFC4X3_RC3_IfcTrimmedCurve_type; }
Ifc4x3_rc3::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC3_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_rc3::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc3::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_rc3::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4x3_rc3::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_rc3::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc3::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_rc3::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4x3_rc3::IfcTubeBundleTypeEnum::Value > Ifc4x3_rc3::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc3::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -23081,14 +23081,14 @@ Ifc4x3_rc3::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) :
Ifc4x3_rc3::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x3_rc3::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4x3_rc3::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4x3_rc3::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4x3_rc3::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc3::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc3::IfcUnit >::ptr Ifc4x3_rc3::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc3::IfcUnit >(); }
+void Ifc4x3_rc3::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4x3_rc3::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc3::IfcUnitAssignment::declaration() const { return *IFC4X3_RC3_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4x3_rc3::IfcUnitAssignment::Class() { return *IFC4X3_RC3_IfcUnitAssignment_type; }
Ifc4x3_rc3::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC3_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc3::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4x3_rc3::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4x3_rc3::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC3_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4x3_rc3::IfcUnitaryControlElementTypeEnum::Value > Ifc4x3_rc3::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc3::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4x3_rc3.h b/src/ifcparse/Ifc4x3_rc3.h
index 0ba741a6e1..51ad0d8fc2 100644
--- a/src/ifcparse/Ifc4x3_rc3.h
+++ b/src/ifcparse/Ifc4x3_rc3.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,16 +201,19 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveMeasureSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveMeasureSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -212,6 +226,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -221,6 +236,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -232,6 +248,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -310,6 +327,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -322,11 +340,13 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
class IFC_PARSE_API IfcFacilityPartTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFacilityPartTypeSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -337,6 +357,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -346,6 +367,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -358,6 +380,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -365,16 +388,19 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
class IFC_PARSE_API IfcImpactProtectionDeviceTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcImpactProtectionDeviceTypeSelect > list;
};
class IFC_PARSE_API IfcInterferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcInterferenceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -386,6 +412,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -400,6 +427,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -426,6 +454,7 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -456,6 +485,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -469,6 +499,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -485,6 +516,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -492,6 +524,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -499,6 +532,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -506,6 +540,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -513,6 +548,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -524,6 +560,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -538,11 +575,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -556,11 +595,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -568,6 +609,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -581,6 +623,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -588,11 +631,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -608,6 +653,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -631,6 +677,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -647,6 +694,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -658,6 +706,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -674,11 +723,13 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
class IFC_PARSE_API IfcSpatialReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpatialReferenceSelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -693,6 +744,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -706,6 +758,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -719,6 +772,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -732,6 +786,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -743,12 +798,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -756,11 +813,13 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcTransportElementTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTransportElementTypeSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -770,6 +829,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -787,6 +847,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -801,6 +862,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -813,6 +875,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -820,6 +883,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -11024,12 +11088,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -11207,15 +11271,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4x3_rc3::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4x3_rc3::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4x3_rc3::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_rc3::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4x3_rc3::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_rc3::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -12006,15 +12070,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4x3_rc3::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -12051,7 +12115,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc3::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc3::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc3::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -12399,15 +12463,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_rc3::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_rc3::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_rc3::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_rc3::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -13318,12 +13382,12 @@ public:
::Ifc4x3_rc3::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4x3_rc3::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_rc3::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_rc3::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_rc3::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_rc3::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13632,15 +13696,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -14189,12 +14253,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -14260,12 +14324,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4x3_rc3::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4x3_rc3::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -15287,8 +15351,8 @@ public:
::Ifc4x3_rc3::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4x3_rc3::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -15329,7 +15393,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc3::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc3::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc3::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc3::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -15570,12 +15634,12 @@ public:
::Ifc4x3_rc3::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4x3_rc3::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15786,14 +15850,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4x3_rc3::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelOrDraughting() const;
void setModelOrDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_rc3::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -15947,12 +16011,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4x3_rc3::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4x3_rc3::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -17965,15 +18029,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4x3_rc3::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4x3_rc3::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc3::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc3::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -18002,12 +18066,12 @@ public:
::Ifc4x3_rc3::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4x3_rc3::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc3::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_rc3::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -18264,12 +18328,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4x3_rc3::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4x3_rc3::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -21288,7 +21352,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4x3_rc3::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -22434,15 +22498,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4x3_rc3::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4x3_rc3::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_rc3::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_rc3::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -22515,15 +22579,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_rc3::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_rc3::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_rc3::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_rc3::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22863,13 +22927,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22887,7 +22951,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc3::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc3::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc3::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc3::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc3::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc3::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -23413,12 +23477,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -23432,7 +23496,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -23473,7 +23537,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -23490,7 +23554,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc3::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc3::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -23508,7 +23572,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -23526,7 +23590,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -23631,7 +23695,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
@@ -23642,7 +23706,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesProfileDef (IfcEntityInstanceData* e);
- IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcProfileDef* v6_RelatingProfileDef);
+ IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc3::IfcProfileDef* v6_RelatingProfileDef);
typedef aggregate_of< IfcRelAssociatesProfileDef > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -24115,12 +24179,12 @@ public:
::Ifc4x3_rc3::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4x3_rc3::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc3::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc3::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_rc3::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -24633,8 +24697,8 @@ class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects
public:
/// Set of products, which are referenced within this level of the spatial structure hierarchy.
/// NOTEÂ Referenced elements are contained elsewhere within the spatial structure, they are referenced additionally by this spatial structure element, e.g., because they span several stories.
- aggregate_of_instance::ptr RelatedElements() const;
- void setRelatedElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcSpatialReferenceSelect >::ptr RelatedElements() const;
+ void setRelatedElements(aggregate_of< ::Ifc4x3_rc3::IfcSpatialReferenceSelect >::ptr v);
/// Spatial structure element, within which the element is referenced. Any element can be contained within zero, one or many elements of the project spatial and zoning structure.
///
/// IFC2x Edition 4 CHANGEÂ The attribute relatingStructure as been promoted to the new supertype IfcSpatialElement with upward compatibility for file based exchange.
@@ -24643,7 +24707,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelReferencedInSpatialStructure (IfcEntityInstanceData* e);
- IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_rc3::IfcSpatialElement* v6_RelatingStructure);
+ IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc3::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_rc3::IfcSpatialElement* v6_RelatingStructure);
typedef aggregate_of< IfcRelReferencedInSpatialStructure > list;
};
/// IfcRelSequence is a
@@ -31217,14 +31281,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4x3_rc3::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4x3_rc3::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcSegmentIndexSelect >::ptr > v);
boost::optional< bool > SelfIntersect() const;
void setSelfIntersect(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4x3_rc3::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4x3_rc3::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -33348,12 +33412,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
/// The aggregation relationship
@@ -35656,11 +35720,11 @@ public:
::Ifc4x3_rc3::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4x3_rc3::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -35670,7 +35734,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4x3_rc3::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc3::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4x3_rc3::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_rc3::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc3::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -44506,12 +44570,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_rc3::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc3::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc3::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc3::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/Ifc4x3_rc4-definitions.h b/src/ifcparse/Ifc4x3_rc4-definitions.h
index eaf23341c5..ad6e1c1eaf 100644
--- a/src/ifcparse/Ifc4x3_rc4-definitions.h
+++ b/src/ifcparse/Ifc4x3_rc4-definitions.h
@@ -4017,3 +4017,53 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectObjectAssignment
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSiUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcGradient
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4x3_rc4.cpp b/src/ifcparse/Ifc4x3_rc4.cpp
index 64058b2c9d..430e82e18a 100644
--- a/src/ifcparse/Ifc4x3_rc4.cpp
+++ b/src/ifcparse/Ifc4x3_rc4.cpp
@@ -15705,8 +15705,8 @@ boost::optional< std::string > Ifc4x3_rc4::IfcDocumentInformation::Revision() co
void Ifc4x3_rc4::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4x3_rc4::IfcActorSelect* Ifc4x3_rc4::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4x3_rc4::IfcActorSelect>(true); }
void Ifc4x3_rc4::IfcDocumentInformation::setDocumentOwner(::Ifc4x3_rc4::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc4::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4x3_rc4::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcActorSelect >::ptr > Ifc4x3_rc4::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4x3_rc4::IfcActorSelect >(); }
+void Ifc4x3_rc4::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4x3_rc4::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4x3_rc4::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4x3_rc4::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -15730,7 +15730,7 @@ void Ifc4x3_rc4::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4x3_rc4
const IfcParse::entity& Ifc4x3_rc4::IfcDocumentInformation::declaration() const { return *IFC4X3_RC4_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcDocumentInformation::Class() { return *IFC4X3_RC4_IfcDocumentInformation_type; }
Ifc4x3_rc4::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc4::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc4::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc4::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_rc4::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_rc4::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4x3_rc4::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc4::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc4::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc4::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_rc4::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_rc4::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4x3_rc4::IfcDocumentInformation* Ifc4x3_rc4::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc4::IfcDocumentInformation>(true); }
@@ -16425,14 +16425,14 @@ Ifc4x3_rc4::IfcExternalReference::IfcExternalReference(boost::optional< std::str
// Function implementations for IfcExternalReferenceRelationship
::Ifc4x3_rc4::IfcExternalReference* Ifc4x3_rc4::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc4::IfcExternalReference>(true); }
void Ifc4x3_rc4::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4x3_rc4::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc4::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr Ifc4x3_rc4::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc4::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc4::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcExternalReferenceRelationship::declaration() const { return *IFC4X3_RC4_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcExternalReferenceRelationship::Class() { return *IFC4X3_RC4_IfcExternalReferenceRelationship_type; }
Ifc4x3_rc4::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_rc4::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4x3_rc4::IfcExternalSpatialElementTypeEnum::Value > Ifc4x3_rc4::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc4::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -16677,8 +16677,8 @@ Ifc4x3_rc4::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntity
Ifc4x3_rc4::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_rc4::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_rc4::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc4::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcFillStyleSelect >::ptr Ifc4x3_rc4::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc4::IfcFillStyleSelect >(); }
+void Ifc4x3_rc4::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4x3_rc4::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_rc4::IfcFillAreaStyle::ModelOrDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_rc4::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -16686,7 +16686,7 @@ void Ifc4x3_rc4::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool >
const IfcParse::entity& Ifc4x3_rc4::IfcFillAreaStyle::declaration() const { return *IFC4X3_RC4_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcFillAreaStyle::Class() { return *IFC4X3_RC4_IfcFillAreaStyle_type; }
Ifc4x3_rc4::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc4::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_rc4::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4x3_rc4::IfcCurveStyle* Ifc4x3_rc4::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc4::IfcCurveStyle>(true); }
@@ -17006,7 +17006,7 @@ Ifc4x3_rc4::IfcGeographicElementType::IfcGeographicElementType(std::string v1_Gl
const IfcParse::entity& Ifc4x3_rc4::IfcGeometricCurveSet::declaration() const { return *IFC4X3_RC4_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcGeometricCurveSet::Class() { return *IFC4X3_RC4_IfcGeometricCurveSet_type; }
Ifc4x3_rc4::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_rc4::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4x3_rc4::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4x3_rc4::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -17051,14 +17051,14 @@ Ifc4x3_rc4::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubC
Ifc4x3_rc4::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4x3_rc4::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4x3_rc4::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4x3_rc4::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc4::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcGeometricSetSelect >::ptr Ifc4x3_rc4::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc4::IfcGeometricSetSelect >(); }
+void Ifc4x3_rc4::IfcGeometricSet::setElements(aggregate_of< ::Ifc4x3_rc4::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcGeometricSet::declaration() const { return *IFC4X3_RC4_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcGeometricSet::Class() { return *IFC4X3_RC4_IfcGeometricSet_type; }
Ifc4x3_rc4::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_rc4::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4x3_rc4::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeomodel
@@ -17290,8 +17290,8 @@ Ifc4x3_rc4::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x3_rc4::IfcTessellate
// Function implementations for IfcIndexedPolyCurve
::Ifc4x3_rc4::IfcCartesianPointList* Ifc4x3_rc4::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc4::IfcCartesianPointList>(true); }
void Ifc4x3_rc4::IfcIndexedPolyCurve::setPoints(::Ifc4x3_rc4::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc4::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc4::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcSegmentIndexSelect >::ptr > Ifc4x3_rc4::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc4::IfcSegmentIndexSelect >(); }
+void Ifc4x3_rc4::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_rc4::IfcIndexedPolyCurve::SelfIntersect() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_rc4::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -17299,7 +17299,7 @@ void Ifc4x3_rc4::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v
const IfcParse::entity& Ifc4x3_rc4::IfcIndexedPolyCurve::declaration() const { return *IFC4X3_RC4_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcIndexedPolyCurve::Class() { return *IFC4X3_RC4_IfcIndexedPolyCurve_type; }
Ifc4x3_rc4::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_rc4::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_rc4::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_rc4::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4x3_rc4::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -17405,14 +17405,14 @@ Ifc4x3_rc4::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name,
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4x3_rc4::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_rc4::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc4::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr Ifc4x3_rc4::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc4::IfcValue >(); }
+void Ifc4x3_rc4::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4X3_RC4_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcIrregularTimeSeriesValue::Class() { return *IFC4X3_RC4_IfcIrregularTimeSeriesValue_type; }
Ifc4x3_rc4::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC4_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4x3_rc4::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4x3_rc4::IfcJunctionBoxTypeEnum::Value > Ifc4x3_rc4::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc4::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -17849,8 +17849,8 @@ Ifc4x3_rc4::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDefi
Ifc4x3_rc4::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc4::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcClassificationSelect >::ptr Ifc4x3_rc4::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc4::IfcClassificationSelect >(); }
+void Ifc4x3_rc4::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4x3_rc4::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4x3_rc4::IfcMaterial* Ifc4x3_rc4::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4x3_rc4::IfcMaterial>(true); }
void Ifc4x3_rc4::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4x3_rc4::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -17858,7 +17858,7 @@ void Ifc4x3_rc4::IfcMaterialClassificationRelationship::setClassifiedMaterial(::
const IfcParse::entity& Ifc4x3_rc4::IfcMaterialClassificationRelationship::declaration() const { return *IFC4X3_RC4_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcMaterialClassificationRelationship::Class() { return *IFC4X3_RC4_IfcMaterialClassificationRelationship_type; }
Ifc4x3_rc4::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC4_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_rc4::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4x3_rc4::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4x3_rc4::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_rc4::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4x3_rc4::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19114,8 +19114,8 @@ std::string Ifc4x3_rc4::IfcPresentationLayerAssignment::Name() const { std::str
void Ifc4x3_rc4::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4x3_rc4::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4x3_rc4::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc4::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcLayeredItem >::ptr Ifc4x3_rc4::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc4::IfcLayeredItem >(); }
+void Ifc4x3_rc4::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4x3_rc4::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4x3_rc4::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4x3_rc4::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -19123,7 +19123,7 @@ void Ifc4x3_rc4::IfcPresentationLayerAssignment::setIdentifier(boost::optional<
const IfcParse::entity& Ifc4x3_rc4::IfcPresentationLayerAssignment::declaration() const { return *IFC4X3_RC4_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcPresentationLayerAssignment::Class() { return *IFC4X3_RC4_IfcPresentationLayerAssignment_type; }
Ifc4x3_rc4::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC4_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4x3_rc4::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc4::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4x3_rc4::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -19139,7 +19139,7 @@ void Ifc4x3_rc4::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::I
const IfcParse::entity& Ifc4x3_rc4::IfcPresentationLayerWithStyle::declaration() const { return *IFC4X3_RC4_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcPresentationLayerWithStyle::Class() { return *IFC4X3_RC4_IfcPresentationLayerWithStyle_type; }
Ifc4x3_rc4::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc4::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4x3_rc4::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc4::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc4::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4x3_rc4::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19371,8 +19371,8 @@ Ifc4x3_rc4::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship
Ifc4x3_rc4::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcProperty* v3_DependingProperty, ::Ifc4x3_rc4::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc4::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc4::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > Ifc4x3_rc4::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc4::IfcValue >(); }
+void Ifc4x3_rc4::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_rc4::IfcPropertyEnumeration* Ifc4x3_rc4::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc4::IfcPropertyEnumeration>(true); }
void Ifc4x3_rc4::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_rc4::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19380,13 +19380,13 @@ void Ifc4x3_rc4::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_rc
const IfcParse::entity& Ifc4x3_rc4::IfcPropertyEnumeratedValue::declaration() const { return *IFC4X3_RC4_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcPropertyEnumeratedValue::Class() { return *IFC4X3_RC4_IfcPropertyEnumeratedValue_type; }
Ifc4x3_rc4::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_rc4::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4x3_rc4::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_rc4::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4x3_rc4::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_rc4::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc4::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr Ifc4x3_rc4::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc4::IfcValue >(); }
+void Ifc4x3_rc4::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4x3_rc4::IfcUnit* Ifc4x3_rc4::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc4::IfcUnit>(true); }
void Ifc4x3_rc4::IfcPropertyEnumeration::setUnit(::Ifc4x3_rc4::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -19394,11 +19394,11 @@ void Ifc4x3_rc4::IfcPropertyEnumeration::setUnit(::Ifc4x3_rc4::IfcUnit* v) { {If
const IfcParse::entity& Ifc4x3_rc4::IfcPropertyEnumeration::declaration() const { return *IFC4X3_RC4_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcPropertyEnumeration::Class() { return *IFC4X3_RC4_IfcPropertyEnumeration_type; }
Ifc4x3_rc4::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_rc4::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4x3_rc4::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_rc4::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc4::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc4::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > Ifc4x3_rc4::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc4::IfcValue >(); }
+void Ifc4x3_rc4::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_rc4::IfcUnit* Ifc4x3_rc4::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc4::IfcUnit>(true); }
void Ifc4x3_rc4::IfcPropertyListValue::setUnit(::Ifc4x3_rc4::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19406,7 +19406,7 @@ void Ifc4x3_rc4::IfcPropertyListValue::setUnit(::Ifc4x3_rc4::IfcUnit* v) { {IfcW
const IfcParse::entity& Ifc4x3_rc4::IfcPropertyListValue::declaration() const { return *IFC4X3_RC4_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcPropertyListValue::Class() { return *IFC4X3_RC4_IfcPropertyListValue_type; }
Ifc4x3_rc4::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_rc4::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4x3_rc4::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_rc4::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4x3_rc4::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -19469,10 +19469,10 @@ Ifc4x3_rc4::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData
Ifc4x3_rc4::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcValue* v3_NominalValue, ::Ifc4x3_rc4::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc4::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc4::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc4::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc4::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > Ifc4x3_rc4::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc4::IfcValue >(); }
+void Ifc4x3_rc4::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > Ifc4x3_rc4::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc4::IfcValue >(); }
+void Ifc4x3_rc4::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4x3_rc4::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4x3_rc4::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4x3_rc4::IfcUnit* Ifc4x3_rc4::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc4::IfcUnit>(true); }
@@ -19486,7 +19486,7 @@ void Ifc4x3_rc4::IfcPropertyTableValue::setCurveInterpolation(boost::optional< :
const IfcParse::entity& Ifc4x3_rc4::IfcPropertyTableValue::declaration() const { return *IFC4X3_RC4_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcPropertyTableValue::Class() { return *IFC4X3_RC4_IfcPropertyTableValue_type; }
Ifc4x3_rc4::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc4::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc4::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc4::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_rc4::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4x3_rc4::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc4::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc4::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc4::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_rc4::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -19969,14 +19969,14 @@ boost::optional< ::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3_rc4:
void Ifc4x3_rc4::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4x3_rc4::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4x3_rc4::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc4::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4x3_rc4::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > Ifc4x3_rc4::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4x3_rc4::IfcBendingParameterSelect >(); }
+void Ifc4x3_rc4::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcReinforcingBarType::declaration() const { return *IFC4X3_RC4_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcReinforcingBarType::Class() { return *IFC4X3_RC4_IfcReinforcingBarType_type; }
Ifc4x3_rc4::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc4::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc4::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4x3_rc4::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc4::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc4::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4x3_rc4::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -20043,14 +20043,14 @@ boost::optional< double > Ifc4x3_rc4::IfcReinforcingMeshType::TransverseBarSpaci
void Ifc4x3_rc4::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4x3_rc4::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4x3_rc4::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc4::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4x3_rc4::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > Ifc4x3_rc4::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4x3_rc4::IfcBendingParameterSelect >(); }
+void Ifc4x3_rc4::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcReinforcingMeshType::declaration() const { return *IFC4X3_RC4_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcReinforcingMeshType::Class() { return *IFC4X3_RC4_IfcReinforcingMeshType_type; }
Ifc4x3_rc4::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc4::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc4::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4x3_rc4::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc4::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_rc4::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAdheresToElement
::Ifc4x3_rc4::IfcElement* Ifc4x3_rc4::IfcRelAdheresToElement::RelatingElement() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc4::IfcElement>(true); }
@@ -20163,14 +20163,14 @@ Ifc4x3_rc4::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceDa
Ifc4x3_rc4::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< ::Ifc4x3_rc4::IfcObjectTypeEnum::Value > v6_RelatedObjectsType, ::Ifc4x3_rc4::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v6_RelatedObjectsType,::Ifc4x3_rc4::IfcObjectTypeEnum::ToString(*v6_RelatedObjectsType))));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_rc4::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr Ifc4x3_rc4::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_rc4::IfcDefinitionSelect >(); }
+void Ifc4x3_rc4::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociates::declaration() const { return *IFC4X3_RC4_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociates::Class() { return *IFC4X3_RC4_IfcRelAssociates_type; }
Ifc4x3_rc4::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4x3_rc4::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4x3_rc4::IfcApproval* Ifc4x3_rc4::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc4::IfcApproval>(true); }
@@ -20180,7 +20180,7 @@ void Ifc4x3_rc4::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4x3_rc4::Ifc
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesApproval::declaration() const { return *IFC4X3_RC4_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesApproval::Class() { return *IFC4X3_RC4_IfcRelAssociatesApproval_type; }
Ifc4x3_rc4::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4x3_rc4::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4x3_rc4::IfcClassificationSelect* Ifc4x3_rc4::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc4::IfcClassificationSelect>(true); }
@@ -20190,7 +20190,7 @@ void Ifc4x3_rc4::IfcRelAssociatesClassification::setRelatingClassification(::Ifc
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesClassification::declaration() const { return *IFC4X3_RC4_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesClassification::Class() { return *IFC4X3_RC4_IfcRelAssociatesClassification_type; }
Ifc4x3_rc4::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4x3_rc4::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4x3_rc4::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -20202,7 +20202,7 @@ void Ifc4x3_rc4::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4x3_rc4:
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesConstraint::declaration() const { return *IFC4X3_RC4_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesConstraint::Class() { return *IFC4X3_RC4_IfcRelAssociatesConstraint_type; }
Ifc4x3_rc4::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc4::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4x3_rc4::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc4::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4x3_rc4::IfcDocumentSelect* Ifc4x3_rc4::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc4::IfcDocumentSelect>(true); }
@@ -20212,7 +20212,7 @@ void Ifc4x3_rc4::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4x3_rc4::Ifc
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesDocument::declaration() const { return *IFC4X3_RC4_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesDocument::Class() { return *IFC4X3_RC4_IfcRelAssociatesDocument_type; }
Ifc4x3_rc4::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4x3_rc4::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4x3_rc4::IfcLibrarySelect* Ifc4x3_rc4::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc4::IfcLibrarySelect>(true); }
@@ -20222,7 +20222,7 @@ void Ifc4x3_rc4::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4x3_rc4::IfcLi
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesLibrary::declaration() const { return *IFC4X3_RC4_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesLibrary::Class() { return *IFC4X3_RC4_IfcRelAssociatesLibrary_type; }
Ifc4x3_rc4::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4x3_rc4::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4x3_rc4::IfcMaterialSelect* Ifc4x3_rc4::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc4::IfcMaterialSelect>(true); }
@@ -20232,7 +20232,7 @@ void Ifc4x3_rc4::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4x3_rc4::Ifc
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesMaterial::declaration() const { return *IFC4X3_RC4_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesMaterial::Class() { return *IFC4X3_RC4_IfcRelAssociatesMaterial_type; }
Ifc4x3_rc4::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4x3_rc4::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesProfileDef
::Ifc4x3_rc4::IfcProfileDef* Ifc4x3_rc4::IfcRelAssociatesProfileDef::RelatingProfileDef() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc4::IfcProfileDef>(true); }
@@ -20242,7 +20242,7 @@ void Ifc4x3_rc4::IfcRelAssociatesProfileDef::setRelatingProfileDef(::Ifc4x3_rc4:
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesProfileDef::declaration() const { return *IFC4X3_RC4_IfcRelAssociatesProfileDef_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelAssociatesProfileDef::Class() { return *IFC4X3_RC4_IfcRelAssociatesProfileDef_type; }
Ifc4x3_rc4::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelAssociatesProfileDef_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
+Ifc4x3_rc4::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -20401,14 +20401,14 @@ Ifc4x3_rc4::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::If
// Function implementations for IfcRelDeclares
::Ifc4x3_rc4::IfcContext* Ifc4x3_rc4::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc4::IfcContext>(true); }
void Ifc4x3_rc4::IfcRelDeclares::setRelatingContext(::Ifc4x3_rc4::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4x3_rc4::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr Ifc4x3_rc4::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4x3_rc4::IfcDefinitionSelect >(); }
+void Ifc4x3_rc4::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcRelDeclares::declaration() const { return *IFC4X3_RC4_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelDeclares::Class() { return *IFC4X3_RC4_IfcRelDeclares_type; }
Ifc4x3_rc4::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc4::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4x3_rc4::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc4::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -20555,8 +20555,8 @@ Ifc4x3_rc4::IfcRelProjectsElement::IfcRelProjectsElement(IfcEntityInstanceData*
Ifc4x3_rc4::IfcRelProjectsElement::IfcRelProjectsElement(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc4::IfcElement* v5_RelatingElement, ::Ifc4x3_rc4::IfcFeatureElementAddition* v6_RelatedFeatureElement) : IfcRelDecomposes((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelProjectsElement_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingElement));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedFeatureElement));data_->setArgument(5,attr);} }
// Function implementations for IfcRelReferencedInSpatialStructure
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcSpatialReferenceSelect >::ptr Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_rc4::IfcSpatialReferenceSelect >(); }
+void Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of< ::Ifc4x3_rc4::IfcSpatialReferenceSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
::Ifc4x3_rc4::IfcSpatialElement* Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::RelatingStructure() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_rc4::IfcSpatialElement>(true); }
void Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4x3_rc4::IfcSpatialElement* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
@@ -20564,7 +20564,7 @@ void Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4
const IfcParse::entity& Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::declaration() const { return *IFC4X3_RC4_IfcRelReferencedInSpatialStructure_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::Class() { return *IFC4X3_RC4_IfcRelReferencedInSpatialStructure_type; }
Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(IfcEntityInstanceData* e) : IfcRelConnects((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcRelReferencedInSpatialStructure_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_rc4::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
+Ifc4x3_rc4::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_rc4::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
// Function implementations for IfcRelSequence
::Ifc4x3_rc4::IfcProcess* Ifc4x3_rc4::IfcRelSequence::RelatingProcess() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_rc4::IfcProcess>(true); }
@@ -20736,8 +20736,8 @@ Ifc4x3_rc4::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((IfcE
Ifc4x3_rc4::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc4::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr Ifc4x3_rc4::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc4::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc4::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4x3_rc4::IfcApproval* Ifc4x3_rc4::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_rc4::IfcApproval>(true); }
void Ifc4x3_rc4::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_rc4::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -20745,19 +20745,19 @@ void Ifc4x3_rc4::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_r
const IfcParse::entity& Ifc4x3_rc4::IfcResourceApprovalRelationship::declaration() const { return *IFC4X3_RC4_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcResourceApprovalRelationship::Class() { return *IFC4X3_RC4_IfcResourceApprovalRelationship_type; }
Ifc4x3_rc4::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc4::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4x3_rc4::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc4::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4x3_rc4::IfcConstraint* Ifc4x3_rc4::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_rc4::IfcConstraint>(true); }
void Ifc4x3_rc4::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4x3_rc4::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_rc4::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr Ifc4x3_rc4::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_rc4::IfcResourceObjectSelect >(); }
+void Ifc4x3_rc4::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcResourceConstraintRelationship::declaration() const { return *IFC4X3_RC4_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcResourceConstraintRelationship::Class() { return *IFC4X3_RC4_IfcResourceConstraintRelationship_type; }
Ifc4x3_rc4::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_rc4::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4x3_rc4::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -21191,14 +21191,14 @@ Ifc4x3_rc4::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData
Ifc4x3_rc4::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x3_rc4::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4x3_rc4::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc4::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcShell >::ptr Ifc4x3_rc4::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc4::IfcShell >(); }
+void Ifc4x3_rc4::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4x3_rc4::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcShellBasedSurfaceModel::declaration() const { return *IFC4X3_RC4_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcShellBasedSurfaceModel::Class() { return *IFC4X3_RC4_IfcShellBasedSurfaceModel_type; }
Ifc4x3_rc4::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4x3_rc4::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4x3_rc4::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSign
boost::optional< ::Ifc4x3_rc4::IfcSignTypeEnum::Value > Ifc4x3_rc4::IfcSign::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc4::IfcSignTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22162,14 +22162,14 @@ Ifc4x3_rc4::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::opti
// Function implementations for IfcSurfaceStyle
::Ifc4x3_rc4::IfcSurfaceSide::Value Ifc4x3_rc4::IfcSurfaceStyle::Side() const { return ::Ifc4x3_rc4::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4x3_rc4::IfcSurfaceStyle::setSide(::Ifc4x3_rc4::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_rc4::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc4::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcSurfaceStyleElementSelect >::ptr Ifc4x3_rc4::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc4::IfcSurfaceStyleElementSelect >(); }
+void Ifc4x3_rc4::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4x3_rc4::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcSurfaceStyle::declaration() const { return *IFC4X3_RC4_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcSurfaceStyle::Class() { return *IFC4X3_RC4_IfcSurfaceStyle_type; }
Ifc4x3_rc4::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_rc4::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_rc4::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4x3_rc4::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_rc4::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_rc4::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_rc4::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4x3_rc4::IfcColourRgb* Ifc4x3_rc4::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc4::IfcColourRgb>(true); }
@@ -22424,8 +22424,8 @@ Ifc4x3_rc4::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil::
Ifc4x3_rc4::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4x3_rc4::IfcUnit* v4_Unit, ::Ifc4x3_rc4::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_rc4::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc4::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > Ifc4x3_rc4::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc4::IfcValue >(); }
+void Ifc4x3_rc4::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4x3_rc4::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4x3_rc4::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -22433,7 +22433,7 @@ void Ifc4x3_rc4::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrit
const IfcParse::entity& Ifc4x3_rc4::IfcTableRow::declaration() const { return *IFC4X3_RC4_IfcTableRow_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcTableRow::Class() { return *IFC4X3_RC4_IfcTableRow_type; }
Ifc4x3_rc4::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC4_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4x3_rc4::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4x3_rc4::IfcTankTypeEnum::Value > Ifc4x3_rc4::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc4::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22861,14 +22861,14 @@ Ifc4x3_rc4::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::If
Ifc4x3_rc4::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3_rc4::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3_rc4::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3_rc4::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4x3_rc4::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4x3_rc4::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc4::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr Ifc4x3_rc4::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc4::IfcValue >(); }
+void Ifc4x3_rc4::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcTimeSeriesValue::declaration() const { return *IFC4X3_RC4_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcTimeSeriesValue::Class() { return *IFC4X3_RC4_IfcTimeSeriesValue_type; }
Ifc4x3_rc4::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC4_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4x3_rc4::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -23003,10 +23003,10 @@ Ifc4x3_rc4::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::I
// Function implementations for IfcTrimmedCurve
::Ifc4x3_rc4::IfcCurve* Ifc4x3_rc4::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_rc4::IfcCurve>(true); }
void Ifc4x3_rc4::IfcTrimmedCurve::setBasisCurve(::Ifc4x3_rc4::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_rc4::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_rc4::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr Ifc4x3_rc4::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_rc4::IfcTrimmingSelect >(); }
+void Ifc4x3_rc4::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr Ifc4x3_rc4::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_rc4::IfcTrimmingSelect >(); }
+void Ifc4x3_rc4::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4x3_rc4::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4x3_rc4::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4x3_rc4::IfcTrimmingPreference::Value Ifc4x3_rc4::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x3_rc4::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -23016,7 +23016,7 @@ void Ifc4x3_rc4::IfcTrimmedCurve::setMasterRepresentation(::Ifc4x3_rc4::IfcTrimm
const IfcParse::entity& Ifc4x3_rc4::IfcTrimmedCurve::declaration() const { return *IFC4X3_RC4_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcTrimmedCurve::Class() { return *IFC4X3_RC4_IfcTrimmedCurve_type; }
Ifc4x3_rc4::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_RC4_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_rc4::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc4::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_rc4::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4x3_rc4::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_rc4::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc4::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_rc4::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4x3_rc4::IfcTubeBundleTypeEnum::Value > Ifc4x3_rc4::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc4::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -23117,14 +23117,14 @@ Ifc4x3_rc4::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) :
Ifc4x3_rc4::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x3_rc4::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4x3_rc4::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4x3_rc4::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4x3_rc4::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_rc4::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_rc4::IfcUnit >::ptr Ifc4x3_rc4::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_rc4::IfcUnit >(); }
+void Ifc4x3_rc4::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4x3_rc4::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_rc4::IfcUnitAssignment::declaration() const { return *IFC4X3_RC4_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4x3_rc4::IfcUnitAssignment::Class() { return *IFC4X3_RC4_IfcUnitAssignment_type; }
Ifc4x3_rc4::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_RC4_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_rc4::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4x3_rc4::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4x3_rc4::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_RC4_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4x3_rc4::IfcUnitaryControlElementTypeEnum::Value > Ifc4x3_rc4::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_rc4::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4x3_rc4.h b/src/ifcparse/Ifc4x3_rc4.h
index e27ef42f96..fa0730d1e4 100644
--- a/src/ifcparse/Ifc4x3_rc4.h
+++ b/src/ifcparse/Ifc4x3_rc4.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,16 +201,19 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveMeasureSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveMeasureSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -212,6 +226,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -221,6 +236,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -232,6 +248,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -310,6 +327,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -322,11 +340,13 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
class IFC_PARSE_API IfcFacilityPartTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFacilityPartTypeSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -337,6 +357,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -346,6 +367,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -358,6 +380,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -365,16 +388,19 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
class IFC_PARSE_API IfcImpactProtectionDeviceTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcImpactProtectionDeviceTypeSelect > list;
};
class IFC_PARSE_API IfcInterferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcInterferenceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -386,6 +412,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -400,6 +427,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -426,6 +454,7 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -456,6 +485,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -469,6 +499,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -485,6 +516,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -492,6 +524,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -499,6 +532,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -506,6 +540,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -513,6 +548,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -524,6 +560,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -538,11 +575,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -556,11 +595,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -568,6 +609,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -581,6 +623,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -588,11 +631,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -608,6 +653,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -631,6 +677,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -647,6 +694,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -658,6 +706,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -674,11 +723,13 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
class IFC_PARSE_API IfcSpatialReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpatialReferenceSelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -693,6 +744,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -706,6 +758,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -719,6 +772,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -732,6 +786,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -743,12 +798,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -756,11 +813,13 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcTransportElementTypeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTransportElementTypeSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -770,6 +829,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -787,6 +847,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -801,6 +862,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -813,6 +875,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -820,6 +883,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -11024,12 +11088,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -11207,15 +11271,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4x3_rc4::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4x3_rc4::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4x3_rc4::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_rc4::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4x3_rc4::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_rc4::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -12006,15 +12070,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4x3_rc4::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc4::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -12051,7 +12115,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc4::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc4::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_rc4::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -12399,15 +12463,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_rc4::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_rc4::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_rc4::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_rc4::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -13318,12 +13382,12 @@ public:
::Ifc4x3_rc4::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4x3_rc4::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_rc4::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_rc4::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_rc4::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_rc4::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13632,15 +13696,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -14189,12 +14253,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -14260,12 +14324,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4x3_rc4::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4x3_rc4::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -15287,8 +15351,8 @@ public:
::Ifc4x3_rc4::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4x3_rc4::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -15329,7 +15393,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc4::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc4::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc4::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_rc4::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_rc4::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_rc4::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -15570,12 +15634,12 @@ public:
::Ifc4x3_rc4::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4x3_rc4::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15786,14 +15850,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4x3_rc4::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelOrDraughting() const;
void setModelOrDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_rc4::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -15947,12 +16011,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4x3_rc4::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4x3_rc4::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -17965,15 +18029,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4x3_rc4::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4x3_rc4::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc4::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_rc4::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -18002,12 +18066,12 @@ public:
::Ifc4x3_rc4::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4x3_rc4::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_rc4::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_rc4::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -18264,12 +18328,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4x3_rc4::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4x3_rc4::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -21273,7 +21337,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4x3_rc4::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -22408,15 +22472,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4x3_rc4::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4x3_rc4::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_rc4::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_rc4::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -22489,15 +22553,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_rc4::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_rc4::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_rc4::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_rc4::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22837,13 +22901,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22861,7 +22925,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc4::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc4::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc4::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_rc4::IfcUnit* v6_DefiningUnit, ::Ifc4x3_rc4::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_rc4::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -23387,12 +23451,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -23406,7 +23470,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -23447,7 +23511,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -23464,7 +23528,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc4::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_rc4::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -23482,7 +23546,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -23500,7 +23564,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -23605,7 +23669,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
@@ -23616,7 +23680,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesProfileDef (IfcEntityInstanceData* e);
- IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcProfileDef* v6_RelatingProfileDef);
+ IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_rc4::IfcProfileDef* v6_RelatingProfileDef);
typedef aggregate_of< IfcRelAssociatesProfileDef > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -24089,12 +24153,12 @@ public:
::Ifc4x3_rc4::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4x3_rc4::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc4::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_rc4::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_rc4::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -24609,8 +24673,8 @@ class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects
public:
/// Set of products, which are referenced within this level of the spatial structure hierarchy.
/// NOTEÂ Referenced elements are contained elsewhere within the spatial structure, they are referenced additionally by this spatial structure element, e.g., because they span several stories.
- aggregate_of_instance::ptr RelatedElements() const;
- void setRelatedElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcSpatialReferenceSelect >::ptr RelatedElements() const;
+ void setRelatedElements(aggregate_of< ::Ifc4x3_rc4::IfcSpatialReferenceSelect >::ptr v);
/// Spatial structure element, within which the element is referenced. Any element can be contained within zero, one or many elements of the project spatial and zoning structure.
///
/// IFC2x Edition 4 CHANGEÂ The attribute relatingStructure as been promoted to the new supertype IfcSpatialElement with upward compatibility for file based exchange.
@@ -24619,7 +24683,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelReferencedInSpatialStructure (IfcEntityInstanceData* e);
- IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_rc4::IfcSpatialElement* v6_RelatingStructure);
+ IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_rc4::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_rc4::IfcSpatialElement* v6_RelatingStructure);
typedef aggregate_of< IfcRelReferencedInSpatialStructure > list;
};
/// IfcRelSequence is a
@@ -31194,14 +31258,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4x3_rc4::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4x3_rc4::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcSegmentIndexSelect >::ptr > v);
boost::optional< bool > SelfIntersect() const;
void setSelfIntersect(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4x3_rc4::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4x3_rc4::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -33325,12 +33389,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc4::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc4::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
@@ -35674,11 +35738,11 @@ public:
::Ifc4x3_rc4::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4x3_rc4::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -35688,7 +35752,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4x3_rc4::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc4::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4x3_rc4::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_rc4::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_rc4::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -44507,12 +44571,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc4::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_rc4::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_rc4::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_rc4::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_rc4::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/Ifc4x3_tc1-definitions.h b/src/ifcparse/Ifc4x3_tc1-definitions.h
index ed7337c12f..50439c9171 100644
--- a/src/ifcparse/Ifc4x3_tc1-definitions.h
+++ b/src/ifcparse/Ifc4x3_tc1-definitions.h
@@ -4026,3 +4026,53 @@
#define SCHEMA_HAS_IfcZone
#define SCHEMA_IfcZone_HAS_LongName
#define SCHEMA_IfcZone_LongName_IS_OPTIONAL
+#define SCHEMA_HAS_IfcRepresentationContextSameWCS
+#define SCHEMA_HAS_IfcSingleProjectInstance
+#define SCHEMA_HAS_IfcAssociatedSurface
+#define SCHEMA_HAS_IfcBaseAxis
+#define SCHEMA_HAS_IfcBooleanChoose
+#define SCHEMA_HAS_IfcBuild2Axes
+#define SCHEMA_HAS_IfcBuildAxes
+#define SCHEMA_HAS_IfcConsecutiveSegments
+#define SCHEMA_HAS_IfcConstraintsParamBSpline
+#define SCHEMA_HAS_IfcConvertDirectionInto2D
+#define SCHEMA_HAS_IfcCorrectDimensions
+#define SCHEMA_HAS_IfcCorrectFillAreaStyle
+#define SCHEMA_HAS_IfcCorrectLocalPlacement
+#define SCHEMA_HAS_IfcCorrectUnitAssignment
+#define SCHEMA_HAS_IfcCrossProduct
+#define SCHEMA_HAS_IfcCurveDim
+#define SCHEMA_HAS_IfcCurveWeightsPositive
+#define SCHEMA_HAS_IfcDeriveDimensionalExponents
+#define SCHEMA_HAS_IfcDimensionsForSIUnit
+#define SCHEMA_HAS_IfcDotProduct
+#define SCHEMA_HAS_IfcFirstProjAxis
+#define SCHEMA_HAS_IfcGetBasisSurface
+#define SCHEMA_HAS_IfcListToArray
+#define SCHEMA_HAS_IfcLoopHeadToTail
+#define SCHEMA_HAS_IfcMakeArrayOfArray
+#define SCHEMA_HAS_IfcMlsTotalThickness
+#define SCHEMA_HAS_IfcNormalise
+#define SCHEMA_HAS_IfcOrthogonalComplement
+#define SCHEMA_HAS_IfcPathHeadToTail
+#define SCHEMA_HAS_IfcPointDim
+#define SCHEMA_HAS_IfcPointListDim
+#define SCHEMA_HAS_IfcSameAxis2Placement
+#define SCHEMA_HAS_IfcSameCartesianPoint
+#define SCHEMA_HAS_IfcSameDirection
+#define SCHEMA_HAS_IfcSameValidPrecision
+#define SCHEMA_HAS_IfcSameValue
+#define SCHEMA_HAS_IfcScalarTimesVector
+#define SCHEMA_HAS_IfcSecondProjAxis
+#define SCHEMA_HAS_IfcSegmentDim
+#define SCHEMA_HAS_IfcShapeRepresentationTypes
+#define SCHEMA_HAS_IfcSurfaceWeightsPositive
+#define SCHEMA_HAS_IfcTaperedSweptAreaProfiles
+#define SCHEMA_HAS_IfcTopologyRepresentationTypes
+#define SCHEMA_HAS_IfcUniqueDefinitionNames
+#define SCHEMA_HAS_IfcUniquePropertyName
+#define SCHEMA_HAS_IfcUniquePropertySetNames
+#define SCHEMA_HAS_IfcUniquePropertyTemplateNames
+#define SCHEMA_HAS_IfcUniqueQuantityNames
+#define SCHEMA_HAS_IfcVectorDifference
+#define SCHEMA_HAS_IfcVectorSum
diff --git a/src/ifcparse/Ifc4x3_tc1.cpp b/src/ifcparse/Ifc4x3_tc1.cpp
index 5e5128b5ed..d40ed946a9 100644
--- a/src/ifcparse/Ifc4x3_tc1.cpp
+++ b/src/ifcparse/Ifc4x3_tc1.cpp
@@ -15560,8 +15560,8 @@ boost::optional< std::string > Ifc4x3_tc1::IfcDocumentInformation::Revision() co
void Ifc4x3_tc1::IfcDocumentInformation::setRevision(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(7,attr);} }
::Ifc4x3_tc1::IfcActorSelect* Ifc4x3_tc1::IfcDocumentInformation::DocumentOwner() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(8)))->as<::Ifc4x3_tc1::IfcActorSelect>(true); }
void Ifc4x3_tc1::IfcDocumentInformation::setDocumentOwner(::Ifc4x3_tc1::IfcActorSelect* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(8,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_tc1::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(9); return v; }
-void Ifc4x3_tc1::IfcDocumentInformation::setEditors(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(9,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcActorSelect >::ptr > Ifc4x3_tc1::IfcDocumentInformation::Editors() const { if(!data_->getArgument(9) || data_->getArgument(9)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(9); return es->as< ::Ifc4x3_tc1::IfcActorSelect >(); }
+void Ifc4x3_tc1::IfcDocumentInformation::setEditors(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcActorSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(9,attr);} }
boost::optional< std::string > Ifc4x3_tc1::IfcDocumentInformation::CreationTime() const { if(!data_->getArgument(10) || data_->getArgument(10)->isNull()) { return boost::none; } std::string v = *data_->getArgument(10); return v; }
void Ifc4x3_tc1::IfcDocumentInformation::setCreationTime(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(10,attr);} }
boost::optional< std::string > Ifc4x3_tc1::IfcDocumentInformation::LastRevisionTime() const { if(!data_->getArgument(11) || data_->getArgument(11)->isNull()) { return boost::none; } std::string v = *data_->getArgument(11); return v; }
@@ -15585,7 +15585,7 @@ void Ifc4x3_tc1::IfcDocumentInformation::setStatus(boost::optional< ::Ifc4x3_tc1
const IfcParse::entity& Ifc4x3_tc1::IfcDocumentInformation::declaration() const { return *IFC4X3_TC1_IfcDocumentInformation_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcDocumentInformation::Class() { return *IFC4X3_TC1_IfcDocumentInformation_type; }
Ifc4x3_tc1::IfcDocumentInformation::IfcDocumentInformation(IfcEntityInstanceData* e) : IfcExternalInformation((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcDocumentInformation_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_tc1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_tc1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_tc1::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_tc1::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_tc1::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
+Ifc4x3_tc1::IfcDocumentInformation::IfcDocumentInformation(std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_tc1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_tc1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_tc1::IfcDocumentStatusEnum::Value > v17_Status) : IfcExternalInformation((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcDocumentInformation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Identification));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Name));data_->setArgument(1,attr);} if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Location) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Location));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Purpose) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Purpose));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_IntendedUse) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_IntendedUse));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_Scope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_Scope));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Revision) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Revision));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v9_DocumentOwner));data_->setArgument(8,attr);} if (v10_Editors) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_Editors)->generalize());data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } if (v11_CreationTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_CreationTime));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_LastRevisionTime) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_LastRevisionTime));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_ElectronicFormat) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_ElectronicFormat));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_ValidFrom) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_ValidFrom));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_ValidUntil) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_ValidUntil));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_Confidentiality) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v16_Confidentiality,::Ifc4x3_tc1::IfcDocumentConfidentialityEnum::ToString(*v16_Confidentiality))));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_Status) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v17_Status,::Ifc4x3_tc1::IfcDocumentStatusEnum::ToString(*v17_Status))));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } }
// Function implementations for IfcDocumentInformationRelationship
::Ifc4x3_tc1::IfcDocumentInformation* Ifc4x3_tc1::IfcDocumentInformationRelationship::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_tc1::IfcDocumentInformation>(true); }
@@ -16256,14 +16256,14 @@ Ifc4x3_tc1::IfcExternalReference::IfcExternalReference(boost::optional< std::str
// Function implementations for IfcExternalReferenceRelationship
::Ifc4x3_tc1::IfcExternalReference* Ifc4x3_tc1::IfcExternalReferenceRelationship::RelatingReference() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_tc1::IfcExternalReference>(true); }
void Ifc4x3_tc1::IfcExternalReferenceRelationship::setRelatingReference(::Ifc4x3_tc1::IfcExternalReference* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_tc1::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr Ifc4x3_tc1::IfcExternalReferenceRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_tc1::IfcResourceObjectSelect >(); }
+void Ifc4x3_tc1::IfcExternalReferenceRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcExternalReferenceRelationship::declaration() const { return *IFC4X3_TC1_IfcExternalReferenceRelationship_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcExternalReferenceRelationship::Class() { return *IFC4X3_TC1_IfcExternalReferenceRelationship_type; }
Ifc4x3_tc1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcExternalReferenceRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_tc1::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_tc1::IfcExternalReferenceRelationship::IfcExternalReferenceRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_tc1::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcExternalReferenceRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingReference));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcExternalSpatialElement
boost::optional< ::Ifc4x3_tc1::IfcExternalSpatialElementTypeEnum::Value > Ifc4x3_tc1::IfcExternalSpatialElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_tc1::IfcExternalSpatialElementTypeEnum::FromString(*data_->getArgument(8)); }
@@ -16516,8 +16516,8 @@ Ifc4x3_tc1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(IfcEntity
Ifc4x3_tc1::IfcFeatureElementSubtraction::IfcFeatureElementSubtraction(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, ::Ifc4x3_tc1::IfcObjectPlacement* v6_ObjectPlacement, ::Ifc4x3_tc1::IfcProductRepresentation* v7_Representation, boost::optional< std::string > v8_Tag) : IfcFeatureElement((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcFeatureElementSubtraction_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_ObjectPlacement));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_Representation));data_->setArgument(6,attr);} if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcFillAreaStyle
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_tc1::IfcFillAreaStyle::setFillStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcFillStyleSelect >::ptr Ifc4x3_tc1::IfcFillAreaStyle::FillStyles() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_tc1::IfcFillStyleSelect >(); }
+void Ifc4x3_tc1::IfcFillAreaStyle::setFillStyles(aggregate_of< ::Ifc4x3_tc1::IfcFillStyleSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_tc1::IfcFillAreaStyle::ModelOrDraughting() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_tc1::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -16525,7 +16525,7 @@ void Ifc4x3_tc1::IfcFillAreaStyle::setModelOrDraughting(boost::optional< bool >
const IfcParse::entity& Ifc4x3_tc1::IfcFillAreaStyle::declaration() const { return *IFC4X3_TC1_IfcFillAreaStyle_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcFillAreaStyle::Class() { return *IFC4X3_TC1_IfcFillAreaStyle_type; }
Ifc4x3_tc1::IfcFillAreaStyle::IfcFillAreaStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcFillAreaStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles));data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_tc1::IfcFillAreaStyle::IfcFillAreaStyle(boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_tc1::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcFillAreaStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_FillStyles)->generalize());data_->setArgument(1,attr);} if (v3_ModelOrDraughting) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ModelOrDraughting));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcFillAreaStyleHatching
::Ifc4x3_tc1::IfcCurveStyle* Ifc4x3_tc1::IfcFillAreaStyleHatching::HatchLineAppearance() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_tc1::IfcCurveStyle>(true); }
@@ -16845,7 +16845,7 @@ Ifc4x3_tc1::IfcGeographicElementType::IfcGeographicElementType(std::string v1_Gl
const IfcParse::entity& Ifc4x3_tc1::IfcGeometricCurveSet::declaration() const { return *IFC4X3_TC1_IfcGeometricCurveSet_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcGeometricCurveSet::Class() { return *IFC4X3_TC1_IfcGeometricCurveSet_type; }
Ifc4x3_tc1::IfcGeometricCurveSet::IfcGeometricCurveSet(IfcEntityInstanceData* e) : IfcGeometricSet((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcGeometricCurveSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_tc1::IfcGeometricCurveSet::IfcGeometricCurveSet(aggregate_of< ::Ifc4x3_tc1::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricSet((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcGeometricCurveSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeometricRepresentationContext
int Ifc4x3_tc1::IfcGeometricRepresentationContext::CoordinateSpaceDimension() const { int v = *data_->getArgument(2); return v; }
@@ -16890,14 +16890,14 @@ Ifc4x3_tc1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubC
Ifc4x3_tc1::IfcGeometricRepresentationSubContext::IfcGeometricRepresentationSubContext(boost::optional< std::string > v1_ContextIdentifier, boost::optional< std::string > v2_ContextType, ::Ifc4x3_tc1::IfcGeometricRepresentationContext* v7_ParentContext, boost::optional< double > v8_TargetScale, ::Ifc4x3_tc1::IfcGeometricProjectionEnum::Value v9_TargetView, boost::optional< std::string > v10_UserDefinedTargetView) : IfcGeometricRepresentationContext((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcGeometricRepresentationSubContext_type); if (v1_ContextIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_ContextIdentifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_ContextType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ContextType));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::Derived());data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_ParentContext));data_->setArgument(6,attr);} if (v8_TargetScale) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_TargetScale));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v9_TargetView,::Ifc4x3_tc1::IfcGeometricProjectionEnum::ToString(v9_TargetView))));data_->setArgument(8,attr);} if (v10_UserDefinedTargetView) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_UserDefinedTargetView));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcGeometricSet
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_tc1::IfcGeometricSet::setElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcGeometricSetSelect >::ptr Ifc4x3_tc1::IfcGeometricSet::Elements() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_tc1::IfcGeometricSetSelect >(); }
+void Ifc4x3_tc1::IfcGeometricSet::setElements(aggregate_of< ::Ifc4x3_tc1::IfcGeometricSetSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcGeometricSet::declaration() const { return *IFC4X3_TC1_IfcGeometricSet_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcGeometricSet::Class() { return *IFC4X3_TC1_IfcGeometricSet_type; }
Ifc4x3_tc1::IfcGeometricSet::IfcGeometricSet(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcGeometricSet_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcGeometricSet::IfcGeometricSet(aggregate_of_instance::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements));data_->setArgument(0,attr);} }
+Ifc4x3_tc1::IfcGeometricSet::IfcGeometricSet(aggregate_of< ::Ifc4x3_tc1::IfcGeometricSetSelect >::ptr v1_Elements) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcGeometricSet_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Elements)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcGeomodel
@@ -17132,8 +17132,8 @@ Ifc4x3_tc1::IfcIndexedColourMap::IfcIndexedColourMap(::Ifc4x3_tc1::IfcTessellate
// Function implementations for IfcIndexedPolyCurve
::Ifc4x3_tc1::IfcCartesianPointList* Ifc4x3_tc1::IfcIndexedPolyCurve::Points() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_tc1::IfcCartesianPointList>(true); }
void Ifc4x3_tc1::IfcIndexedPolyCurve::setPoints(::Ifc4x3_tc1::IfcCartesianPointList* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_tc1::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_tc1::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcSegmentIndexSelect >::ptr > Ifc4x3_tc1::IfcIndexedPolyCurve::Segments() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_tc1::IfcSegmentIndexSelect >(); }
+void Ifc4x3_tc1::IfcIndexedPolyCurve::setSegments(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcSegmentIndexSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(1,attr);} }
boost::optional< bool > Ifc4x3_tc1::IfcIndexedPolyCurve::SelfIntersect() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } bool v = *data_->getArgument(2); return v; }
void Ifc4x3_tc1::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
@@ -17141,7 +17141,7 @@ void Ifc4x3_tc1::IfcIndexedPolyCurve::setSelfIntersect(boost::optional< bool > v
const IfcParse::entity& Ifc4x3_tc1::IfcIndexedPolyCurve::declaration() const { return *IFC4X3_TC1_IfcIndexedPolyCurve_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcIndexedPolyCurve::Class() { return *IFC4X3_TC1_IfcIndexedPolyCurve_type; }
Ifc4x3_tc1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcIndexedPolyCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_tc1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
+Ifc4x3_tc1::IfcIndexedPolyCurve::IfcIndexedPolyCurve(::Ifc4x3_tc1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcIndexedPolyCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Points));data_->setArgument(0,attr);} if (v2_Segments) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Segments)->generalize());data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_SelfIntersect) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_SelfIntersect));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcIndexedPolygonalFace
std::vector< int > /*[3:?]*/ Ifc4x3_tc1::IfcIndexedPolygonalFace::CoordIndex() const { std::vector< int > /*[3:?]*/ v = *data_->getArgument(0); return v; }
@@ -17258,14 +17258,14 @@ Ifc4x3_tc1::IfcIrregularTimeSeries::IfcIrregularTimeSeries(std::string v1_Name,
// Function implementations for IfcIrregularTimeSeriesValue
std::string Ifc4x3_tc1::IfcIrregularTimeSeriesValue::TimeStamp() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_tc1::IfcIrregularTimeSeriesValue::setTimeStamp(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_tc1::IfcIrregularTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr Ifc4x3_tc1::IfcIrregularTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_tc1::IfcValue >(); }
+void Ifc4x3_tc1::IfcIrregularTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcIrregularTimeSeriesValue::declaration() const { return *IFC4X3_TC1_IfcIrregularTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcIrregularTimeSeriesValue::Class() { return *IFC4X3_TC1_IfcIrregularTimeSeriesValue_type; }
Ifc4x3_tc1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_TC1_IfcIrregularTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues));data_->setArgument(1,attr);} }
+Ifc4x3_tc1::IfcIrregularTimeSeriesValue::IfcIrregularTimeSeriesValue(std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v2_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcIrregularTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_TimeStamp));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ListValues)->generalize());data_->setArgument(1,attr);} }
// Function implementations for IfcJunctionBox
boost::optional< ::Ifc4x3_tc1::IfcJunctionBoxTypeEnum::Value > Ifc4x3_tc1::IfcJunctionBox::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_tc1::IfcJunctionBoxTypeEnum::FromString(*data_->getArgument(8)); }
@@ -17712,8 +17712,8 @@ Ifc4x3_tc1::IfcMaterial::IfcMaterial(IfcEntityInstanceData* e) : IfcMaterialDefi
Ifc4x3_tc1::IfcMaterial::IfcMaterial(std::string v1_Name, boost::optional< std::string > v2_Description, boost::optional< std::string > v3_Category) : IfcMaterialDefinition((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Category) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Category));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } }
// Function implementations for IfcMaterialClassificationRelationship
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_tc1::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcClassificationSelect >::ptr Ifc4x3_tc1::IfcMaterialClassificationRelationship::MaterialClassifications() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_tc1::IfcClassificationSelect >(); }
+void Ifc4x3_tc1::IfcMaterialClassificationRelationship::setMaterialClassifications(aggregate_of< ::Ifc4x3_tc1::IfcClassificationSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
::Ifc4x3_tc1::IfcMaterial* Ifc4x3_tc1::IfcMaterialClassificationRelationship::ClassifiedMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(1)))->as<::Ifc4x3_tc1::IfcMaterial>(true); }
void Ifc4x3_tc1::IfcMaterialClassificationRelationship::setClassifiedMaterial(::Ifc4x3_tc1::IfcMaterial* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
@@ -17721,7 +17721,7 @@ void Ifc4x3_tc1::IfcMaterialClassificationRelationship::setClassifiedMaterial(::
const IfcParse::entity& Ifc4x3_tc1::IfcMaterialClassificationRelationship::declaration() const { return *IFC4X3_TC1_IfcMaterialClassificationRelationship_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcMaterialClassificationRelationship::Class() { return *IFC4X3_TC1_IfcMaterialClassificationRelationship_type; }
Ifc4x3_tc1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_TC1_IfcMaterialClassificationRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_tc1::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
+Ifc4x3_tc1::IfcMaterialClassificationRelationship::IfcMaterialClassificationRelationship(aggregate_of< ::Ifc4x3_tc1::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_tc1::IfcMaterial* v2_ClassifiedMaterial) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcMaterialClassificationRelationship_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_MaterialClassifications)->generalize());data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_ClassifiedMaterial));data_->setArgument(1,attr);} }
// Function implementations for IfcMaterialConstituent
boost::optional< std::string > Ifc4x3_tc1::IfcMaterialConstituent::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -18948,8 +18948,8 @@ std::string Ifc4x3_tc1::IfcPresentationLayerAssignment::Name() const { std::str
void Ifc4x3_tc1::IfcPresentationLayerAssignment::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
boost::optional< std::string > Ifc4x3_tc1::IfcPresentationLayerAssignment::Description() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } std::string v = *data_->getArgument(1); return v; }
void Ifc4x3_tc1::IfcPresentationLayerAssignment::setDescription(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_tc1::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcLayeredItem >::ptr Ifc4x3_tc1::IfcPresentationLayerAssignment::AssignedItems() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_tc1::IfcLayeredItem >(); }
+void Ifc4x3_tc1::IfcPresentationLayerAssignment::setAssignedItems(aggregate_of< ::Ifc4x3_tc1::IfcLayeredItem >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
boost::optional< std::string > Ifc4x3_tc1::IfcPresentationLayerAssignment::Identifier() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } std::string v = *data_->getArgument(3); return v; }
void Ifc4x3_tc1::IfcPresentationLayerAssignment::setIdentifier(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
@@ -18957,7 +18957,7 @@ void Ifc4x3_tc1::IfcPresentationLayerAssignment::setIdentifier(boost::optional<
const IfcParse::entity& Ifc4x3_tc1::IfcPresentationLayerAssignment::declaration() const { return *IFC4X3_TC1_IfcPresentationLayerAssignment_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcPresentationLayerAssignment::Class() { return *IFC4X3_TC1_IfcPresentationLayerAssignment_type; }
Ifc4x3_tc1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_TC1_IfcPresentationLayerAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
+Ifc4x3_tc1::IfcPresentationLayerAssignment::IfcPresentationLayerAssignment(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_tc1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPresentationLayerAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } }
// Function implementations for IfcPresentationLayerWithStyle
boost::logic::tribool Ifc4x3_tc1::IfcPresentationLayerWithStyle::LayerOn() const { boost::logic::tribool v = *data_->getArgument(4); return v; }
@@ -18973,7 +18973,7 @@ void Ifc4x3_tc1::IfcPresentationLayerWithStyle::setLayerStyles(aggregate_of< ::I
const IfcParse::entity& Ifc4x3_tc1::IfcPresentationLayerWithStyle::declaration() const { return *IFC4X3_TC1_IfcPresentationLayerWithStyle_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcPresentationLayerWithStyle::Class() { return *IFC4X3_TC1_IfcPresentationLayerWithStyle_type; }
Ifc4x3_tc1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(IfcEntityInstanceData* e) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcPresentationLayerWithStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_tc1::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems));data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
+Ifc4x3_tc1::IfcPresentationLayerWithStyle::IfcPresentationLayerWithStyle(std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_tc1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_tc1::IfcPresentationStyle >::ptr v8_LayerStyles) : IfcPresentationLayerAssignment((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPresentationLayerWithStyle_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_AssignedItems)->generalize());data_->setArgument(2,attr);} if (v4_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Identifier));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_LayerOn));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_LayerFrozen));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_LayerBlocked));data_->setArgument(6,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_LayerStyles)->generalize());data_->setArgument(7,attr);} }
// Function implementations for IfcPresentationStyle
boost::optional< std::string > Ifc4x3_tc1::IfcPresentationStyle::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -19205,8 +19205,8 @@ Ifc4x3_tc1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship
Ifc4x3_tc1::IfcPropertyDependencyRelationship::IfcPropertyDependencyRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_tc1::IfcProperty* v3_DependingProperty, ::Ifc4x3_tc1::IfcProperty* v4_DependantProperty, boost::optional< std::string > v5_Expression) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertyDependencyRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_DependingProperty));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_DependantProperty));data_->setArgument(3,attr);} if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } }
// Function implementations for IfcPropertyEnumeratedValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_tc1::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_tc1::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > Ifc4x3_tc1::IfcPropertyEnumeratedValue::EnumerationValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_tc1::IfcValue >(); }
+void Ifc4x3_tc1::IfcPropertyEnumeratedValue::setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_tc1::IfcPropertyEnumeration* Ifc4x3_tc1::IfcPropertyEnumeratedValue::EnumerationReference() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_tc1::IfcPropertyEnumeration>(true); }
void Ifc4x3_tc1::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_tc1::IfcPropertyEnumeration* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19214,13 +19214,13 @@ void Ifc4x3_tc1::IfcPropertyEnumeratedValue::setEnumerationReference(::Ifc4x3_tc
const IfcParse::entity& Ifc4x3_tc1::IfcPropertyEnumeratedValue::declaration() const { return *IFC4X3_TC1_IfcPropertyEnumeratedValue_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcPropertyEnumeratedValue::Class() { return *IFC4X3_TC1_IfcPropertyEnumeratedValue_type; }
Ifc4x3_tc1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcPropertyEnumeratedValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_tc1::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
+Ifc4x3_tc1::IfcPropertyEnumeratedValue::IfcPropertyEnumeratedValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_tc1::IfcPropertyEnumeration* v4_EnumerationReference) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertyEnumeratedValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_EnumerationValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_EnumerationValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EnumerationReference));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyEnumeration
std::string Ifc4x3_tc1::IfcPropertyEnumeration::Name() const { std::string v = *data_->getArgument(0); return v; }
void Ifc4x3_tc1::IfcPropertyEnumeration::setName(std::string v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_tc1::IfcPropertyEnumeration::setEnumerationValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr Ifc4x3_tc1::IfcPropertyEnumeration::EnumerationValues() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_tc1::IfcValue >(); }
+void Ifc4x3_tc1::IfcPropertyEnumeration::setEnumerationValues(aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
::Ifc4x3_tc1::IfcUnit* Ifc4x3_tc1::IfcPropertyEnumeration::Unit() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_tc1::IfcUnit>(true); }
void Ifc4x3_tc1::IfcPropertyEnumeration::setUnit(::Ifc4x3_tc1::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
@@ -19228,11 +19228,11 @@ void Ifc4x3_tc1::IfcPropertyEnumeration::setUnit(::Ifc4x3_tc1::IfcUnit* v) { {If
const IfcParse::entity& Ifc4x3_tc1::IfcPropertyEnumeration::declaration() const { return *IFC4X3_TC1_IfcPropertyEnumeration_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcPropertyEnumeration::Class() { return *IFC4X3_TC1_IfcPropertyEnumeration_type; }
Ifc4x3_tc1::IfcPropertyEnumeration::IfcPropertyEnumeration(IfcEntityInstanceData* e) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcPropertyEnumeration_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_tc1::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
+Ifc4x3_tc1::IfcPropertyEnumeration::IfcPropertyEnumeration(std::string v1_Name, aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_tc1::IfcUnit* v3_Unit) : IfcPropertyAbstraction((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertyEnumeration_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_EnumerationValues)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Unit));data_->setArgument(2,attr);} }
// Function implementations for IfcPropertyListValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_tc1::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_tc1::IfcPropertyListValue::setListValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > Ifc4x3_tc1::IfcPropertyListValue::ListValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_tc1::IfcValue >(); }
+void Ifc4x3_tc1::IfcPropertyListValue::setListValues(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
::Ifc4x3_tc1::IfcUnit* Ifc4x3_tc1::IfcPropertyListValue::Unit() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_tc1::IfcUnit>(true); }
void Ifc4x3_tc1::IfcPropertyListValue::setUnit(::Ifc4x3_tc1::IfcUnit* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -19240,7 +19240,7 @@ void Ifc4x3_tc1::IfcPropertyListValue::setUnit(::Ifc4x3_tc1::IfcUnit* v) { {IfcW
const IfcParse::entity& Ifc4x3_tc1::IfcPropertyListValue::declaration() const { return *IFC4X3_TC1_IfcPropertyListValue_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcPropertyListValue::Class() { return *IFC4X3_TC1_IfcPropertyListValue_type; }
Ifc4x3_tc1::IfcPropertyListValue::IfcPropertyListValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcPropertyListValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_tc1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
+Ifc4x3_tc1::IfcPropertyListValue::IfcPropertyListValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_tc1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertyListValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_ListValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_ListValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyReferenceValue
boost::optional< std::string > Ifc4x3_tc1::IfcPropertyReferenceValue::UsageName() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } std::string v = *data_->getArgument(2); return v; }
@@ -19303,10 +19303,10 @@ Ifc4x3_tc1::IfcPropertySingleValue::IfcPropertySingleValue(IfcEntityInstanceData
Ifc4x3_tc1::IfcPropertySingleValue::IfcPropertySingleValue(std::string v1_Name, boost::optional< std::string > v2_Specification, ::Ifc4x3_tc1::IfcValue* v3_NominalValue, ::Ifc4x3_tc1::IfcUnit* v4_Unit) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertySingleValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_NominalValue));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);} }
// Function implementations for IfcPropertyTableValue
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_tc1::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_tc1::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(2,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_tc1::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_tc1::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(3,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > Ifc4x3_tc1::IfcPropertyTableValue::DefiningValues() const { if(!data_->getArgument(2) || data_->getArgument(2)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_tc1::IfcValue >(); }
+void Ifc4x3_tc1::IfcPropertyTableValue::setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(2,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > Ifc4x3_tc1::IfcPropertyTableValue::DefinedValues() const { if(!data_->getArgument(3) || data_->getArgument(3)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_tc1::IfcValue >(); }
+void Ifc4x3_tc1::IfcPropertyTableValue::setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(3,attr);} }
boost::optional< std::string > Ifc4x3_tc1::IfcPropertyTableValue::Expression() const { if(!data_->getArgument(4) || data_->getArgument(4)->isNull()) { return boost::none; } std::string v = *data_->getArgument(4); return v; }
void Ifc4x3_tc1::IfcPropertyTableValue::setExpression(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(4,attr);} }
::Ifc4x3_tc1::IfcUnit* Ifc4x3_tc1::IfcPropertyTableValue::DefiningUnit() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return nullptr; } return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_tc1::IfcUnit>(true); }
@@ -19320,7 +19320,7 @@ void Ifc4x3_tc1::IfcPropertyTableValue::setCurveInterpolation(boost::optional< :
const IfcParse::entity& Ifc4x3_tc1::IfcPropertyTableValue::declaration() const { return *IFC4X3_TC1_IfcPropertyTableValue_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcPropertyTableValue::Class() { return *IFC4X3_TC1_IfcPropertyTableValue_type; }
Ifc4x3_tc1::IfcPropertyTableValue::IfcPropertyTableValue(IfcEntityInstanceData* e) : IfcSimpleProperty((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcPropertyTableValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_tc1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_tc1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_tc1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_tc1::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
+Ifc4x3_tc1::IfcPropertyTableValue::IfcPropertyTableValue(std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_tc1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_tc1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_tc1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation) : IfcSimpleProperty((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcPropertyTableValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Specification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Specification));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_DefiningValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_DefiningValues)->generalize());data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_DefinedValues) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_DefinedValues)->generalize());data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_Expression) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_Expression));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_DefiningUnit));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_DefinedUnit));data_->setArgument(6,attr);} if (v8_CurveInterpolation) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v8_CurveInterpolation,::Ifc4x3_tc1::IfcCurveInterpolationEnum::ToString(*v8_CurveInterpolation))));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } }
// Function implementations for IfcPropertyTemplate
@@ -19811,14 +19811,14 @@ boost::optional< ::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::Value > Ifc4x3_tc1:
void Ifc4x3_tc1::IfcReinforcingBarType::setBarSurface(boost::optional< ::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::Value > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(*v,::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::ToString(*v)));}data_->setArgument(13,attr);} }
boost::optional< std::string > Ifc4x3_tc1::IfcReinforcingBarType::BendingShapeCode() const { if(!data_->getArgument(14) || data_->getArgument(14)->isNull()) { return boost::none; } std::string v = *data_->getArgument(14); return v; }
void Ifc4x3_tc1::IfcReinforcingBarType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(14,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_tc1::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(15); return v; }
-void Ifc4x3_tc1::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(15,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > Ifc4x3_tc1::IfcReinforcingBarType::BendingParameters() const { if(!data_->getArgument(15) || data_->getArgument(15)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(15); return es->as< ::Ifc4x3_tc1::IfcBendingParameterSelect >(); }
+void Ifc4x3_tc1::IfcReinforcingBarType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(15,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcReinforcingBarType::declaration() const { return *IFC4X3_TC1_IfcReinforcingBarType_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcReinforcingBarType::Class() { return *IFC4X3_TC1_IfcReinforcingBarType_type; }
Ifc4x3_tc1::IfcReinforcingBarType::IfcReinforcingBarType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcReinforcingBarType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_tc1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_tc1::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
+Ifc4x3_tc1::IfcReinforcingBarType::IfcReinforcingBarType(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_tc1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > v16_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcReinforcingBarType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_tc1::IfcReinforcingBarTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_NominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_NominalDiameter));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_CrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_CrossSectionArea));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_BarLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_BarLength));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_BarSurface) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(*v14_BarSurface,::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::ToString(*v14_BarSurface))));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_BendingShapeCode));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_BendingParameters)->generalize());data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } }
// Function implementations for IfcReinforcingElement
boost::optional< std::string > Ifc4x3_tc1::IfcReinforcingElement::SteelGrade() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } std::string v = *data_->getArgument(8); return v; }
@@ -19885,14 +19885,14 @@ boost::optional< double > Ifc4x3_tc1::IfcReinforcingMeshType::TransverseBarSpaci
void Ifc4x3_tc1::IfcReinforcingMeshType::setTransverseBarSpacing(boost::optional< double > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(17,attr);} }
boost::optional< std::string > Ifc4x3_tc1::IfcReinforcingMeshType::BendingShapeCode() const { if(!data_->getArgument(18) || data_->getArgument(18)->isNull()) { return boost::none; } std::string v = *data_->getArgument(18); return v; }
void Ifc4x3_tc1::IfcReinforcingMeshType::setBendingShapeCode(boost::optional< std::string > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(18,attr);} }
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_tc1::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(19); return v; }
-void Ifc4x3_tc1::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(19,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > Ifc4x3_tc1::IfcReinforcingMeshType::BendingParameters() const { if(!data_->getArgument(19) || data_->getArgument(19)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(19); return es->as< ::Ifc4x3_tc1::IfcBendingParameterSelect >(); }
+void Ifc4x3_tc1::IfcReinforcingMeshType::setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(19,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcReinforcingMeshType::declaration() const { return *IFC4X3_TC1_IfcReinforcingMeshType_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcReinforcingMeshType::Class() { return *IFC4X3_TC1_IfcReinforcingMeshType_type; }
Ifc4x3_tc1::IfcReinforcingMeshType::IfcReinforcingMeshType(IfcEntityInstanceData* e) : IfcReinforcingElementType((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcReinforcingMeshType_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_tc1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_tc1::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters));data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
+Ifc4x3_tc1::IfcReinforcingMeshType::IfcReinforcingMeshType(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_tc1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > v20_BendingParameters) : IfcReinforcingElementType((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcReinforcingMeshType_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ApplicableOccurrence) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ApplicableOccurrence));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_HasPropertySets) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_HasPropertySets)->generalize());data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_RepresentationMaps) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_RepresentationMaps)->generalize());data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } if (v8_Tag) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_Tag));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_ElementType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_ElementType));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v10_PredefinedType,::Ifc4x3_tc1::IfcReinforcingMeshTypeEnum::ToString(v10_PredefinedType))));data_->setArgument(9,attr);} if (v11_MeshLength) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v11_MeshLength));data_->setArgument(10,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(10, attr); } if (v12_MeshWidth) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v12_MeshWidth));data_->setArgument(11,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(11, attr); } if (v13_LongitudinalBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v13_LongitudinalBarNominalDiameter));data_->setArgument(12,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(12, attr); } if (v14_TransverseBarNominalDiameter) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v14_TransverseBarNominalDiameter));data_->setArgument(13,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(13, attr); } if (v15_LongitudinalBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v15_LongitudinalBarCrossSectionArea));data_->setArgument(14,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(14, attr); } if (v16_TransverseBarCrossSectionArea) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v16_TransverseBarCrossSectionArea));data_->setArgument(15,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(15, attr); } if (v17_LongitudinalBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v17_LongitudinalBarSpacing));data_->setArgument(16,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(16, attr); } if (v18_TransverseBarSpacing) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v18_TransverseBarSpacing));data_->setArgument(17,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(17, attr); } if (v19_BendingShapeCode) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v19_BendingShapeCode));data_->setArgument(18,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(18, attr); } if (v20_BendingParameters) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v20_BendingParameters)->generalize());data_->setArgument(19,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(19, attr); } }
// Function implementations for IfcRelAdheresToElement
::Ifc4x3_tc1::IfcElement* Ifc4x3_tc1::IfcRelAdheresToElement::RelatingElement() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_tc1::IfcElement>(true); }
@@ -20005,14 +20005,14 @@ Ifc4x3_tc1::IfcRelAssignsToResource::IfcRelAssignsToResource(IfcEntityInstanceDa
Ifc4x3_tc1::IfcRelAssignsToResource::IfcRelAssignsToResource(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcObjectDefinition >::ptr v5_RelatedObjects, boost::optional< bool > v6_RelatedObjectsType, ::Ifc4x3_tc1::IfcResourceSelect* v7_RelatingResource) : IfcRelAssigns((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssignsToResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_RelatedObjectsType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_RelatedObjectsType));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingResource));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociates
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_tc1::IfcRelAssociates::setRelatedObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr Ifc4x3_tc1::IfcRelAssociates::RelatedObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_tc1::IfcDefinitionSelect >(); }
+void Ifc4x3_tc1::IfcRelAssociates::setRelatedObjects(aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociates::declaration() const { return *IFC4X3_TC1_IfcRelAssociates_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociates::Class() { return *IFC4X3_TC1_IfcRelAssociates_type; }
Ifc4x3_tc1::IfcRelAssociates::IfcRelAssociates(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelAssociates_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} }
+Ifc4x3_tc1::IfcRelAssociates::IfcRelAssociates(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociates_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} }
// Function implementations for IfcRelAssociatesApproval
::Ifc4x3_tc1::IfcApproval* Ifc4x3_tc1::IfcRelAssociatesApproval::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_tc1::IfcApproval>(true); }
@@ -20022,7 +20022,7 @@ void Ifc4x3_tc1::IfcRelAssociatesApproval::setRelatingApproval(::Ifc4x3_tc1::Ifc
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesApproval::declaration() const { return *IFC4X3_TC1_IfcRelAssociatesApproval_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesApproval::Class() { return *IFC4X3_TC1_IfcRelAssociatesApproval_type; }
Ifc4x3_tc1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelAssociatesApproval_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
+Ifc4x3_tc1::IfcRelAssociatesApproval::IfcRelAssociatesApproval(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcApproval* v6_RelatingApproval) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesApproval_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingApproval));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesClassification
::Ifc4x3_tc1::IfcClassificationSelect* Ifc4x3_tc1::IfcRelAssociatesClassification::RelatingClassification() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_tc1::IfcClassificationSelect>(true); }
@@ -20032,7 +20032,7 @@ void Ifc4x3_tc1::IfcRelAssociatesClassification::setRelatingClassification(::Ifc
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesClassification::declaration() const { return *IFC4X3_TC1_IfcRelAssociatesClassification_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesClassification::Class() { return *IFC4X3_TC1_IfcRelAssociatesClassification_type; }
Ifc4x3_tc1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelAssociatesClassification_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
+Ifc4x3_tc1::IfcRelAssociatesClassification::IfcRelAssociatesClassification(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcClassificationSelect* v6_RelatingClassification) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesClassification_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingClassification));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesConstraint
boost::optional< std::string > Ifc4x3_tc1::IfcRelAssociatesConstraint::Intent() const { if(!data_->getArgument(5) || data_->getArgument(5)->isNull()) { return boost::none; } std::string v = *data_->getArgument(5); return v; }
@@ -20044,7 +20044,7 @@ void Ifc4x3_tc1::IfcRelAssociatesConstraint::setRelatingConstraint(::Ifc4x3_tc1:
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesConstraint::declaration() const { return *IFC4X3_TC1_IfcRelAssociatesConstraint_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesConstraint::Class() { return *IFC4X3_TC1_IfcRelAssociatesConstraint_type; }
Ifc4x3_tc1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelAssociatesConstraint_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_tc1::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
+Ifc4x3_tc1::IfcRelAssociatesConstraint::IfcRelAssociatesConstraint(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_tc1::IfcConstraint* v7_RelatingConstraint) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesConstraint_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);} if (v6_Intent) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Intent));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_RelatingConstraint));data_->setArgument(6,attr);} }
// Function implementations for IfcRelAssociatesDocument
::Ifc4x3_tc1::IfcDocumentSelect* Ifc4x3_tc1::IfcRelAssociatesDocument::RelatingDocument() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_tc1::IfcDocumentSelect>(true); }
@@ -20054,7 +20054,7 @@ void Ifc4x3_tc1::IfcRelAssociatesDocument::setRelatingDocument(::Ifc4x3_tc1::Ifc
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesDocument::declaration() const { return *IFC4X3_TC1_IfcRelAssociatesDocument_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesDocument::Class() { return *IFC4X3_TC1_IfcRelAssociatesDocument_type; }
Ifc4x3_tc1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelAssociatesDocument_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
+Ifc4x3_tc1::IfcRelAssociatesDocument::IfcRelAssociatesDocument(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcDocumentSelect* v6_RelatingDocument) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesDocument_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingDocument));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesLibrary
::Ifc4x3_tc1::IfcLibrarySelect* Ifc4x3_tc1::IfcRelAssociatesLibrary::RelatingLibrary() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_tc1::IfcLibrarySelect>(true); }
@@ -20064,7 +20064,7 @@ void Ifc4x3_tc1::IfcRelAssociatesLibrary::setRelatingLibrary(::Ifc4x3_tc1::IfcLi
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesLibrary::declaration() const { return *IFC4X3_TC1_IfcRelAssociatesLibrary_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesLibrary::Class() { return *IFC4X3_TC1_IfcRelAssociatesLibrary_type; }
Ifc4x3_tc1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelAssociatesLibrary_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
+Ifc4x3_tc1::IfcRelAssociatesLibrary::IfcRelAssociatesLibrary(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcLibrarySelect* v6_RelatingLibrary) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesLibrary_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingLibrary));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesMaterial
::Ifc4x3_tc1::IfcMaterialSelect* Ifc4x3_tc1::IfcRelAssociatesMaterial::RelatingMaterial() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_tc1::IfcMaterialSelect>(true); }
@@ -20074,7 +20074,7 @@ void Ifc4x3_tc1::IfcRelAssociatesMaterial::setRelatingMaterial(::Ifc4x3_tc1::Ifc
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesMaterial::declaration() const { return *IFC4X3_TC1_IfcRelAssociatesMaterial_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesMaterial::Class() { return *IFC4X3_TC1_IfcRelAssociatesMaterial_type; }
Ifc4x3_tc1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelAssociatesMaterial_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
+Ifc4x3_tc1::IfcRelAssociatesMaterial::IfcRelAssociatesMaterial(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcMaterialSelect* v6_RelatingMaterial) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesMaterial_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingMaterial));data_->setArgument(5,attr);} }
// Function implementations for IfcRelAssociatesProfileDef
::Ifc4x3_tc1::IfcProfileDef* Ifc4x3_tc1::IfcRelAssociatesProfileDef::RelatingProfileDef() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_tc1::IfcProfileDef>(true); }
@@ -20084,7 +20084,7 @@ void Ifc4x3_tc1::IfcRelAssociatesProfileDef::setRelatingProfileDef(::Ifc4x3_tc1:
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesProfileDef::declaration() const { return *IFC4X3_TC1_IfcRelAssociatesProfileDef_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelAssociatesProfileDef::Class() { return *IFC4X3_TC1_IfcRelAssociatesProfileDef_type; }
Ifc4x3_tc1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(IfcEntityInstanceData* e) : IfcRelAssociates((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelAssociatesProfileDef_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
+Ifc4x3_tc1::IfcRelAssociatesProfileDef::IfcRelAssociatesProfileDef(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcProfileDef* v6_RelatingProfileDef) : IfcRelAssociates((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelAssociatesProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedObjects)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingProfileDef));data_->setArgument(5,attr);} }
// Function implementations for IfcRelConnects
@@ -20243,14 +20243,14 @@ Ifc4x3_tc1::IfcRelCoversSpaces::IfcRelCoversSpaces(std::string v1_GlobalId, ::If
// Function implementations for IfcRelDeclares
::Ifc4x3_tc1::IfcContext* Ifc4x3_tc1::IfcRelDeclares::RelatingContext() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_tc1::IfcContext>(true); }
void Ifc4x3_tc1::IfcRelDeclares::setRelatingContext(::Ifc4x3_tc1::IfcContext* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr v = *data_->getArgument(5); return v; }
-void Ifc4x3_tc1::IfcRelDeclares::setRelatedDefinitions(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr Ifc4x3_tc1::IfcRelDeclares::RelatedDefinitions() const { aggregate_of_instance::ptr es = *data_->getArgument(5); return es->as< ::Ifc4x3_tc1::IfcDefinitionSelect >(); }
+void Ifc4x3_tc1::IfcRelDeclares::setRelatedDefinitions(aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(5,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcRelDeclares::declaration() const { return *IFC4X3_TC1_IfcRelDeclares_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelDeclares::Class() { return *IFC4X3_TC1_IfcRelDeclares_type; }
Ifc4x3_tc1::IfcRelDeclares::IfcRelDeclares(IfcEntityInstanceData* e) : IfcRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelDeclares_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_tc1::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions));data_->setArgument(5,attr);} }
+Ifc4x3_tc1::IfcRelDeclares::IfcRelDeclares(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_tc1::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v6_RelatedDefinitions) : IfcRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelDeclares_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingContext));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedDefinitions)->generalize());data_->setArgument(5,attr);} }
// Function implementations for IfcRelDecomposes
@@ -20397,8 +20397,8 @@ Ifc4x3_tc1::IfcRelProjectsElement::IfcRelProjectsElement(IfcEntityInstanceData*
Ifc4x3_tc1::IfcRelProjectsElement::IfcRelProjectsElement(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_tc1::IfcElement* v5_RelatingElement, ::Ifc4x3_tc1::IfcFeatureElementAddition* v6_RelatedFeatureElement) : IfcRelDecomposes((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelProjectsElement_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatingElement));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatedFeatureElement));data_->setArgument(5,attr);} }
// Function implementations for IfcRelReferencedInSpatialStructure
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr v = *data_->getArgument(4); return v; }
-void Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(4,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcSpatialReferenceSelect >::ptr Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::RelatedElements() const { aggregate_of_instance::ptr es = *data_->getArgument(4); return es->as< ::Ifc4x3_tc1::IfcSpatialReferenceSelect >(); }
+void Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::setRelatedElements(aggregate_of< ::Ifc4x3_tc1::IfcSpatialReferenceSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(4,attr);} }
::Ifc4x3_tc1::IfcSpatialElement* Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::RelatingStructure() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(5)))->as<::Ifc4x3_tc1::IfcSpatialElement>(true); }
void Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4x3_tc1::IfcSpatialElement* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(5,attr);} }
@@ -20406,7 +20406,7 @@ void Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::setRelatingStructure(::Ifc4
const IfcParse::entity& Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::declaration() const { return *IFC4X3_TC1_IfcRelReferencedInSpatialStructure_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::Class() { return *IFC4X3_TC1_IfcRelReferencedInSpatialStructure_type; }
Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(IfcEntityInstanceData* e) : IfcRelConnects((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcRelReferencedInSpatialStructure_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_tc1::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
+Ifc4x3_tc1::IfcRelReferencedInSpatialStructure::IfcRelReferencedInSpatialStructure(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_tc1::IfcSpatialElement* v6_RelatingStructure) : IfcRelConnects((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcRelReferencedInSpatialStructure_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_RelatedElements)->generalize());data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_RelatingStructure));data_->setArgument(5,attr);} }
// Function implementations for IfcRelSequence
::Ifc4x3_tc1::IfcProcess* Ifc4x3_tc1::IfcRelSequence::RelatingProcess() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(4)))->as<::Ifc4x3_tc1::IfcProcess>(true); }
@@ -20578,8 +20578,8 @@ Ifc4x3_tc1::IfcResource::IfcResource(IfcEntityInstanceData* e) : IfcObject((IfcE
Ifc4x3_tc1::IfcResource::IfcResource(std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ObjectType, boost::optional< std::string > v6_Identification, boost::optional< std::string > v7_LongDescription) : IfcObject((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcResource_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_GlobalId));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_OwnerHistory));data_->setArgument(1,attr);} if (v3_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Name));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); } if (v4_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v4_Description));data_->setArgument(3,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(3, attr); } if (v5_ObjectType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v5_ObjectType));data_->setArgument(4,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(4, attr); } if (v6_Identification) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v6_Identification));data_->setArgument(5,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(5, attr); } if (v7_LongDescription) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_LongDescription));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); } }
// Function implementations for IfcResourceApprovalRelationship
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_tc1::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr Ifc4x3_tc1::IfcResourceApprovalRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_tc1::IfcResourceObjectSelect >(); }
+void Ifc4x3_tc1::IfcResourceApprovalRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
::Ifc4x3_tc1::IfcApproval* Ifc4x3_tc1::IfcResourceApprovalRelationship::RelatingApproval() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(3)))->as<::Ifc4x3_tc1::IfcApproval>(true); }
void Ifc4x3_tc1::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_tc1::IfcApproval* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
@@ -20587,19 +20587,19 @@ void Ifc4x3_tc1::IfcResourceApprovalRelationship::setRelatingApproval(::Ifc4x3_t
const IfcParse::entity& Ifc4x3_tc1::IfcResourceApprovalRelationship::declaration() const { return *IFC4X3_TC1_IfcResourceApprovalRelationship_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcResourceApprovalRelationship::Class() { return *IFC4X3_TC1_IfcResourceApprovalRelationship_type; }
Ifc4x3_tc1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcResourceApprovalRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_tc1::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
+Ifc4x3_tc1::IfcResourceApprovalRelationship::IfcResourceApprovalRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_tc1::IfcApproval* v4_RelatingApproval) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcResourceApprovalRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatedResourceObjects)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatingApproval));data_->setArgument(3,attr);} }
// Function implementations for IfcResourceConstraintRelationship
::Ifc4x3_tc1::IfcConstraint* Ifc4x3_tc1::IfcResourceConstraintRelationship::RelatingConstraint() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(2)))->as<::Ifc4x3_tc1::IfcConstraint>(true); }
void Ifc4x3_tc1::IfcResourceConstraintRelationship::setRelatingConstraint(::Ifc4x3_tc1::IfcConstraint* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr v = *data_->getArgument(3); return v; }
-void Ifc4x3_tc1::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr Ifc4x3_tc1::IfcResourceConstraintRelationship::RelatedResourceObjects() const { aggregate_of_instance::ptr es = *data_->getArgument(3); return es->as< ::Ifc4x3_tc1::IfcResourceObjectSelect >(); }
+void Ifc4x3_tc1::IfcResourceConstraintRelationship::setRelatedResourceObjects(aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(3,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcResourceConstraintRelationship::declaration() const { return *IFC4X3_TC1_IfcResourceConstraintRelationship_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcResourceConstraintRelationship::Class() { return *IFC4X3_TC1_IfcResourceConstraintRelationship_type; }
Ifc4x3_tc1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(IfcEntityInstanceData* e) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcResourceConstraintRelationship_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_tc1::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects));data_->setArgument(3,attr);} }
+Ifc4x3_tc1::IfcResourceConstraintRelationship::IfcResourceConstraintRelationship(boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_tc1::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects) : IfcResourceLevelRelationship((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcResourceConstraintRelationship_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_RelatingConstraint));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_RelatedResourceObjects)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcResourceLevelRelationship
boost::optional< std::string > Ifc4x3_tc1::IfcResourceLevelRelationship::Name() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } std::string v = *data_->getArgument(0); return v; }
@@ -21039,14 +21039,14 @@ Ifc4x3_tc1::IfcShapeRepresentation::IfcShapeRepresentation(IfcEntityInstanceData
Ifc4x3_tc1::IfcShapeRepresentation::IfcShapeRepresentation(::Ifc4x3_tc1::IfcRepresentationContext* v1_ContextOfItems, boost::optional< std::string > v2_RepresentationIdentifier, boost::optional< std::string > v3_RepresentationType, aggregate_of< ::Ifc4x3_tc1::IfcRepresentationItem >::ptr v4_Items) : IfcShapeModel((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcShapeRepresentation_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ContextOfItems));data_->setArgument(0,attr);} if (v2_RepresentationIdentifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_RepresentationIdentifier));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_RepresentationType) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_RepresentationType));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Items)->generalize());data_->setArgument(3,attr);} }
// Function implementations for IfcShellBasedSurfaceModel
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_tc1::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcShell >::ptr Ifc4x3_tc1::IfcShellBasedSurfaceModel::SbsmBoundary() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_tc1::IfcShell >(); }
+void Ifc4x3_tc1::IfcShellBasedSurfaceModel::setSbsmBoundary(aggregate_of< ::Ifc4x3_tc1::IfcShell >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcShellBasedSurfaceModel::declaration() const { return *IFC4X3_TC1_IfcShellBasedSurfaceModel_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcShellBasedSurfaceModel::Class() { return *IFC4X3_TC1_IfcShellBasedSurfaceModel_type; }
Ifc4x3_tc1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(IfcEntityInstanceData* e) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcShellBasedSurfaceModel_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of_instance::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary));data_->setArgument(0,attr);} }
+Ifc4x3_tc1::IfcShellBasedSurfaceModel::IfcShellBasedSurfaceModel(aggregate_of< ::Ifc4x3_tc1::IfcShell >::ptr v1_SbsmBoundary) : IfcGeometricRepresentationItem((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcShellBasedSurfaceModel_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_SbsmBoundary)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcSign
boost::optional< ::Ifc4x3_tc1::IfcSignTypeEnum::Value > Ifc4x3_tc1::IfcSign::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_tc1::IfcSignTypeEnum::FromString(*data_->getArgument(8)); }
@@ -21988,14 +21988,14 @@ Ifc4x3_tc1::IfcSurfaceReinforcementArea::IfcSurfaceReinforcementArea(boost::opti
// Function implementations for IfcSurfaceStyle
::Ifc4x3_tc1::IfcSurfaceSide::Value Ifc4x3_tc1::IfcSurfaceStyle::Side() const { return ::Ifc4x3_tc1::IfcSurfaceSide::FromString(*data_->getArgument(1)); }
void Ifc4x3_tc1::IfcSurfaceStyle::setSide(::Ifc4x3_tc1::IfcSurfaceSide::Value v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(IfcWrite::IfcWriteArgument::EnumerationReference(v,::Ifc4x3_tc1::IfcSurfaceSide::ToString(v)));data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_tc1::IfcSurfaceStyle::setStyles(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcSurfaceStyleElementSelect >::ptr Ifc4x3_tc1::IfcSurfaceStyle::Styles() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_tc1::IfcSurfaceStyleElementSelect >(); }
+void Ifc4x3_tc1::IfcSurfaceStyle::setStyles(aggregate_of< ::Ifc4x3_tc1::IfcSurfaceStyleElementSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcSurfaceStyle::declaration() const { return *IFC4X3_TC1_IfcSurfaceStyle_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcSurfaceStyle::Class() { return *IFC4X3_TC1_IfcSurfaceStyle_type; }
Ifc4x3_tc1::IfcSurfaceStyle::IfcSurfaceStyle(IfcEntityInstanceData* e) : IfcPresentationStyle((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcSurfaceStyle_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_tc1::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_tc1::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles));data_->setArgument(2,attr);} }
+Ifc4x3_tc1::IfcSurfaceStyle::IfcSurfaceStyle(boost::optional< std::string > v1_Name, ::Ifc4x3_tc1::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_tc1::IfcSurfaceStyleElementSelect >::ptr v3_Styles) : IfcPresentationStyle((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcSurfaceStyle_type); if (v1_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Name));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v2_Side,::Ifc4x3_tc1::IfcSurfaceSide::ToString(v2_Side))));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Styles)->generalize());data_->setArgument(2,attr);} }
// Function implementations for IfcSurfaceStyleLighting
::Ifc4x3_tc1::IfcColourRgb* Ifc4x3_tc1::IfcSurfaceStyleLighting::DiffuseTransmissionColour() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_tc1::IfcColourRgb>(true); }
@@ -22250,8 +22250,8 @@ Ifc4x3_tc1::IfcTableColumn::IfcTableColumn(IfcEntityInstanceData* e) : IfcUtil::
Ifc4x3_tc1::IfcTableColumn::IfcTableColumn(boost::optional< std::string > v1_Identifier, boost::optional< std::string > v2_Name, boost::optional< std::string > v3_Description, ::Ifc4x3_tc1::IfcUnit* v4_Unit, ::Ifc4x3_tc1::IfcReference* v5_ReferencePath) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcTableColumn_type); if (v1_Identifier) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_Identifier));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_Name) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Name));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } if (v3_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v3_Description));data_->setArgument(2,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(2, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Unit));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_ReferencePath));data_->setArgument(4,attr);} }
// Function implementations for IfcTableRow
-boost::optional< aggregate_of_instance::ptr > Ifc4x3_tc1::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_tc1::IfcTableRow::setRowCells(boost::optional< aggregate_of_instance::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(0,attr);} }
+boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > Ifc4x3_tc1::IfcTableRow::RowCells() const { if(!data_->getArgument(0) || data_->getArgument(0)->isNull()) { return boost::none; } aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_tc1::IfcValue >(); }
+void Ifc4x3_tc1::IfcTableRow::setRowCells(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set((*v)->generalize());}data_->setArgument(0,attr);} }
boost::optional< bool > Ifc4x3_tc1::IfcTableRow::IsHeading() const { if(!data_->getArgument(1) || data_->getArgument(1)->isNull()) { return boost::none; } bool v = *data_->getArgument(1); return v; }
void Ifc4x3_tc1::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();if (v) {attr->set(*v);}data_->setArgument(1,attr);} }
@@ -22259,7 +22259,7 @@ void Ifc4x3_tc1::IfcTableRow::setIsHeading(boost::optional< bool > v) { {IfcWrit
const IfcParse::entity& Ifc4x3_tc1::IfcTableRow::declaration() const { return *IFC4X3_TC1_IfcTableRow_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcTableRow::Class() { return *IFC4X3_TC1_IfcTableRow_type; }
Ifc4x3_tc1::IfcTableRow::IfcTableRow(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_TC1_IfcTableRow_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcTableRow::IfcTableRow(boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells));data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
+Ifc4x3_tc1::IfcTableRow::IfcTableRow(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcTableRow_type); if (v1_RowCells) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v1_RowCells)->generalize());data_->setArgument(0,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(0, attr); } if (v2_IsHeading) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_IsHeading));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); } }
// Function implementations for IfcTank
boost::optional< ::Ifc4x3_tc1::IfcTankTypeEnum::Value > Ifc4x3_tc1::IfcTank::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_tc1::IfcTankTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22710,14 +22710,14 @@ Ifc4x3_tc1::IfcTimeSeries::IfcTimeSeries(IfcEntityInstanceData* e) : IfcUtil::If
Ifc4x3_tc1::IfcTimeSeries::IfcTimeSeries(std::string v1_Name, boost::optional< std::string > v2_Description, std::string v3_StartTime, std::string v4_EndTime, ::Ifc4x3_tc1::IfcTimeSeriesDataTypeEnum::Value v5_TimeSeriesDataType, ::Ifc4x3_tc1::IfcDataOriginEnum::Value v6_DataOrigin, boost::optional< std::string > v7_UserDefinedDataOrigin, ::Ifc4x3_tc1::IfcUnit* v8_Unit) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcTimeSeries_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Name));data_->setArgument(0,attr);} if (v2_Description) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_Description));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_StartTime));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_EndTime));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_TimeSeriesDataType,::Ifc4x3_tc1::IfcTimeSeriesDataTypeEnum::ToString(v5_TimeSeriesDataType))));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v6_DataOrigin,::Ifc4x3_tc1::IfcDataOriginEnum::ToString(v6_DataOrigin))));data_->setArgument(5,attr);} if (v7_UserDefinedDataOrigin) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v7_UserDefinedDataOrigin));data_->setArgument(6,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(6, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v8_Unit));data_->setArgument(7,attr);} }
// Function implementations for IfcTimeSeriesValue
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_tc1::IfcTimeSeriesValue::setListValues(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr Ifc4x3_tc1::IfcTimeSeriesValue::ListValues() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_tc1::IfcValue >(); }
+void Ifc4x3_tc1::IfcTimeSeriesValue::setListValues(aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcTimeSeriesValue::declaration() const { return *IFC4X3_TC1_IfcTimeSeriesValue_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcTimeSeriesValue::Class() { return *IFC4X3_TC1_IfcTimeSeriesValue_type; }
Ifc4x3_tc1::IfcTimeSeriesValue::IfcTimeSeriesValue(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_TC1_IfcTimeSeriesValue_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of_instance::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues));data_->setArgument(0,attr);} }
+Ifc4x3_tc1::IfcTimeSeriesValue::IfcTimeSeriesValue(aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v1_ListValues) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcTimeSeriesValue_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_ListValues)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcTopologicalRepresentationItem
@@ -22868,10 +22868,10 @@ Ifc4x3_tc1::IfcTriangulatedIrregularNetwork::IfcTriangulatedIrregularNetwork(::I
// Function implementations for IfcTrimmedCurve
::Ifc4x3_tc1::IfcCurve* Ifc4x3_tc1::IfcTrimmedCurve::BasisCurve() const { return ((IfcUtil::IfcBaseClass*)(*data_->getArgument(0)))->as<::Ifc4x3_tc1::IfcCurve>(true); }
void Ifc4x3_tc1::IfcTrimmedCurve::setBasisCurve(::Ifc4x3_tc1::IfcCurve* v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr v = *data_->getArgument(1); return v; }
-void Ifc4x3_tc1::IfcTrimmedCurve::setTrim1(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(1,attr);} }
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr v = *data_->getArgument(2); return v; }
-void Ifc4x3_tc1::IfcTrimmedCurve::setTrim2(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(2,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr Ifc4x3_tc1::IfcTrimmedCurve::Trim1() const { aggregate_of_instance::ptr es = *data_->getArgument(1); return es->as< ::Ifc4x3_tc1::IfcTrimmingSelect >(); }
+void Ifc4x3_tc1::IfcTrimmedCurve::setTrim1(aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(1,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr Ifc4x3_tc1::IfcTrimmedCurve::Trim2() const { aggregate_of_instance::ptr es = *data_->getArgument(2); return es->as< ::Ifc4x3_tc1::IfcTrimmingSelect >(); }
+void Ifc4x3_tc1::IfcTrimmedCurve::setTrim2(aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(2,attr);} }
bool Ifc4x3_tc1::IfcTrimmedCurve::SenseAgreement() const { bool v = *data_->getArgument(3); return v; }
void Ifc4x3_tc1::IfcTrimmedCurve::setSenseAgreement(bool v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(3,attr);} }
::Ifc4x3_tc1::IfcTrimmingPreference::Value Ifc4x3_tc1::IfcTrimmedCurve::MasterRepresentation() const { return ::Ifc4x3_tc1::IfcTrimmingPreference::FromString(*data_->getArgument(4)); }
@@ -22881,7 +22881,7 @@ void Ifc4x3_tc1::IfcTrimmedCurve::setMasterRepresentation(::Ifc4x3_tc1::IfcTrimm
const IfcParse::entity& Ifc4x3_tc1::IfcTrimmedCurve::declaration() const { return *IFC4X3_TC1_IfcTrimmedCurve_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcTrimmedCurve::Class() { return *IFC4X3_TC1_IfcTrimmedCurve_type; }
Ifc4x3_tc1::IfcTrimmedCurve::IfcTrimmedCurve(IfcEntityInstanceData* e) : IfcBoundedCurve((IfcEntityInstanceData*)0) { if (!e) return; if (e->type() != IFC4X3_TC1_IfcTrimmedCurve_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_tc1::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_tc1::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1));data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_tc1::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
+Ifc4x3_tc1::IfcTrimmedCurve::IfcTrimmedCurve(::Ifc4x3_tc1::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_tc1::IfcTrimmingPreference::Value v5_MasterRepresentation) : IfcBoundedCurve((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcTrimmedCurve_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_BasisCurve));data_->setArgument(0,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v2_Trim1)->generalize());data_->setArgument(1,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Trim2)->generalize());data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_SenseAgreement));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v5_MasterRepresentation,::Ifc4x3_tc1::IfcTrimmingPreference::ToString(v5_MasterRepresentation))));data_->setArgument(4,attr);} }
// Function implementations for IfcTubeBundle
boost::optional< ::Ifc4x3_tc1::IfcTubeBundleTypeEnum::Value > Ifc4x3_tc1::IfcTubeBundle::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_tc1::IfcTubeBundleTypeEnum::FromString(*data_->getArgument(8)); }
@@ -22982,14 +22982,14 @@ Ifc4x3_tc1::IfcUShapeProfileDef::IfcUShapeProfileDef(IfcEntityInstanceData* e) :
Ifc4x3_tc1::IfcUShapeProfileDef::IfcUShapeProfileDef(::Ifc4x3_tc1::IfcProfileTypeEnum::Value v1_ProfileType, boost::optional< std::string > v2_ProfileName, ::Ifc4x3_tc1::IfcAxis2Placement2D* v3_Position, double v4_Depth, double v5_FlangeWidth, double v6_WebThickness, double v7_FlangeThickness, boost::optional< double > v8_FilletRadius, boost::optional< double > v9_EdgeRadius, boost::optional< double > v10_FlangeSlope) : IfcParameterizedProfileDef((IfcEntityInstanceData*)0) {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcUShapeProfileDef_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((IfcWrite::IfcWriteArgument::EnumerationReference(v1_ProfileType,::Ifc4x3_tc1::IfcProfileTypeEnum::ToString(v1_ProfileType))));data_->setArgument(0,attr);} if (v2_ProfileName) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v2_ProfileName));data_->setArgument(1,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(1, attr); }{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v3_Position));data_->setArgument(2,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v4_Depth));data_->setArgument(3,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v5_FlangeWidth));data_->setArgument(4,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v6_WebThickness));data_->setArgument(5,attr);}{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v7_FlangeThickness));data_->setArgument(6,attr);} if (v8_FilletRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v8_FilletRadius));data_->setArgument(7,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(7, attr); } if (v9_EdgeRadius) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v9_EdgeRadius));data_->setArgument(8,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(8, attr); } if (v10_FlangeSlope) {{IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((*v10_FlangeSlope));data_->setArgument(9,attr);} } else { IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument(); attr->set(boost::blank()); data_->setArgument(9, attr); } }
// Function implementations for IfcUnitAssignment
-aggregate_of_instance::ptr Ifc4x3_tc1::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr v = *data_->getArgument(0); return v; }
-void Ifc4x3_tc1::IfcUnitAssignment::setUnits(aggregate_of_instance::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set(v);data_->setArgument(0,attr);} }
+aggregate_of< ::Ifc4x3_tc1::IfcUnit >::ptr Ifc4x3_tc1::IfcUnitAssignment::Units() const { aggregate_of_instance::ptr es = *data_->getArgument(0); return es->as< ::Ifc4x3_tc1::IfcUnit >(); }
+void Ifc4x3_tc1::IfcUnitAssignment::setUnits(aggregate_of< ::Ifc4x3_tc1::IfcUnit >::ptr v) { {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v)->generalize());data_->setArgument(0,attr);} }
const IfcParse::entity& Ifc4x3_tc1::IfcUnitAssignment::declaration() const { return *IFC4X3_TC1_IfcUnitAssignment_type; }
const IfcParse::entity& Ifc4x3_tc1::IfcUnitAssignment::Class() { return *IFC4X3_TC1_IfcUnitAssignment_type; }
Ifc4x3_tc1::IfcUnitAssignment::IfcUnitAssignment(IfcEntityInstanceData* e) : IfcUtil::IfcBaseEntity() { if (!e) return; if (e->type() != IFC4X3_TC1_IfcUnitAssignment_type) throw IfcException("Unable to find keyword in schema"); data_ = e; }
-Ifc4x3_tc1::IfcUnitAssignment::IfcUnitAssignment(aggregate_of_instance::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units));data_->setArgument(0,attr);} }
+Ifc4x3_tc1::IfcUnitAssignment::IfcUnitAssignment(aggregate_of< ::Ifc4x3_tc1::IfcUnit >::ptr v1_Units) : IfcUtil::IfcBaseEntity() {data_ = new IfcEntityInstanceData(IFC4X3_TC1_IfcUnitAssignment_type); {IfcWrite::IfcWriteArgument* attr = new IfcWrite::IfcWriteArgument();attr->set((v1_Units)->generalize());data_->setArgument(0,attr);} }
// Function implementations for IfcUnitaryControlElement
boost::optional< ::Ifc4x3_tc1::IfcUnitaryControlElementTypeEnum::Value > Ifc4x3_tc1::IfcUnitaryControlElement::PredefinedType() const { if(!data_->getArgument(8) || data_->getArgument(8)->isNull()) { return boost::none; } return ::Ifc4x3_tc1::IfcUnitaryControlElementTypeEnum::FromString(*data_->getArgument(8)); }
diff --git a/src/ifcparse/Ifc4x3_tc1.h b/src/ifcparse/Ifc4x3_tc1.h
index 9a6f91c952..14b1e37aaa 100644
--- a/src/ifcparse/Ifc4x3_tc1.h
+++ b/src/ifcparse/Ifc4x3_tc1.h
@@ -65,6 +65,7 @@ class IfcActionRequest; class IfcActor; class IfcActorRole; class IfcActuator; c
class IFC_PARSE_API IfcActorSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcActorSelect > list;
};
/// IfcAppliedValueSelect defines the selection of whether a value (expressed as a ratio) or an amount should be used as the value for an IfcAppliedValue.
///
@@ -83,6 +84,7 @@ public:
class IFC_PARSE_API IfcAppliedValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAppliedValueSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type collects together both versions of the placement as used in two dimensional or in three dimensional Cartesian space. This enables entities requiring this information to reference them without specifying the space dimensionality.
///
@@ -92,6 +94,7 @@ public:
class IFC_PARSE_API IfcAxis2Placement : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcAxis2Placement > list;
};
/// Definition from IAI: A select type for selecting between simple measure types for reinforcement bending parameters.
///
@@ -99,6 +102,7 @@ public:
class IFC_PARSE_API IfcBendingParameterSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBendingParameterSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies
/// all those types of entities which may participate in a Boolean operation to
@@ -119,6 +123,7 @@ public:
class IFC_PARSE_API IfcBooleanOperand : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcBooleanOperand > list;
};
/// IfcClassificationReferenceSelect enables selection of whether a classification reference is a subset of another classification reference or is a top level entry of a classification source.
///
@@ -131,6 +136,7 @@ public:
class IFC_PARSE_API IfcClassificationReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationReferenceSelect > list;
};
/// IfcClassificationSelect enables selection of whether a classification reference is to be referenced from an external source, or whether a classification is referenced as such.
///
@@ -148,6 +154,7 @@ public:
class IFC_PARSE_API IfcClassificationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcClassificationSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The colour entity defines a basic appearance of elements which shall be visualized in a picture.
///
@@ -157,6 +164,7 @@ public:
class IFC_PARSE_API IfcColour : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColour > list;
};
/// The IfcColourOrFactor enables the selection of either a RGB colour value or a scalar factor value for the use as values of the reflectance components.
///
@@ -164,6 +172,7 @@ public:
class IFC_PARSE_API IfcColourOrFactor : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcColourOrFactor > list;
};
/// IfcCoordinateReferenceSystemSelect is a select between either the local engineering coordinate system, represented by the IfcGeometricRepresentationContext, or another coordinate reference system, represented by IfcCoordinateReferenceSystem, to be the source of a coordinate operation.
///
@@ -171,6 +180,7 @@ public:
class IFC_PARSE_API IfcCoordinateReferenceSystemSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCoordinateReferenceSystemSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This type identifies the types of entity which may be selected as the root of a CSG tree including a single CSG primitive as a special case.
/// Definition from IAI: The IfcBooleanResult, and subtypes of IfcCsgPrimitive3D are defined as potential root tree expression (at IfcCsgSolid). A subtype of IfcCsgPrimitive3D marks the special case of a CSG solid solely expressed by a single primitive.
@@ -181,6 +191,7 @@ public:
class IFC_PARSE_API IfcCsgSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCsgSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve font or scaled curve font select is a selection of either a curve font style select (being either a predefined curve font or an explicitly defined curve font) or a curve style font and scaling.
///
@@ -190,16 +201,19 @@ public:
class IFC_PARSE_API IfcCurveFontOrScaledCurveFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveFontOrScaledCurveFontSelect > list;
};
class IFC_PARSE_API IfcCurveMeasureSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveMeasureSelect > list;
};
class IFC_PARSE_API IfcCurveOnSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOnSurface > list;
};
/// IfcCurveOrEdgeCurve provides the option to either select a geometric curve (IfcCurve
/// and subtypes) within a geometric model, or a curve with associated geometry and coordinates (IfcEdgeCurve) within a topological model.
@@ -212,6 +226,7 @@ public:
class IFC_PARSE_API IfcCurveOrEdgeCurve : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveOrEdgeCurve > list;
};
/// Definition from ISO/CD 10303-46:1992: The curve style font select is a selection of a curve style font or a predefined curve style font.
///
@@ -221,6 +236,7 @@ public:
class IFC_PARSE_API IfcCurveStyleFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcCurveStyleFontSelect > list;
};
/// IfcDefinitionSelectprovides the option to either select an object or type object IfcObjectDefinition, or a property set template or property set, IfcPropertyDefinition.
/// SELECT
@@ -232,6 +248,7 @@ public:
class IFC_PARSE_API IfcDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDefinitionSelect > list;
};
/// IfcDerivedMeasureValue is a select type for selecting between derived measure types.
///
@@ -310,6 +327,7 @@ public:
class IFC_PARSE_API IfcDerivedMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDerivedMeasureValue > list;
};
/// IfcDocumentSelect enables selection of whether document information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -322,6 +340,7 @@ public:
class IFC_PARSE_API IfcDocumentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcDocumentSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The fill style select is a selection between different fill area styles.
///
@@ -332,6 +351,7 @@ public:
class IFC_PARSE_API IfcFillStyleSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcFillStyleSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the types of entities which can occur in a geometric set.
///
@@ -341,6 +361,7 @@ public:
class IFC_PARSE_API IfcGeometricSetSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGeometricSetSelect > list;
};
/// IfcGridPlacementDirectionSelect enables the choice of defining a grid placement be either an explicit direction, or by referencing a second grid intersection to provide the direction.
///
@@ -353,6 +374,7 @@ public:
class IFC_PARSE_API IfcGridPlacementDirectionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcGridPlacementDirectionSelect > list;
};
/// The IfcHatchLineDistanceSelect is a selection between different ways to determine the distance and potentially start point of hatch lines, either by an offset distance length measure or by a vector.
///
@@ -360,11 +382,13 @@ public:
class IFC_PARSE_API IfcHatchLineDistanceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcHatchLineDistanceSelect > list;
};
class IFC_PARSE_API IfcInterferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcInterferenceSelect > list;
};
/// Definition from ISO/CD 10303-46:1992: The layered things type selects those things, which can be grouped in layers.
///
@@ -376,6 +400,7 @@ public:
class IFC_PARSE_API IfcLayeredItem : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLayeredItem > list;
};
/// IfcLibrarySelect enables selection of whether library information is to be contained within an IFC model or is to be referenced from an external source.
///
@@ -390,6 +415,7 @@ public:
class IFC_PARSE_API IfcLibrarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLibrarySelect > list;
};
/// A goniometric light gets its intensity distribution function (how much light goes in any one direction) from one of two sources: (i) an industry-standard file, (ii) from distribution data passed directly via the IfcLightIntensityDistribution.
///
@@ -416,6 +442,7 @@ public:
class IFC_PARSE_API IfcLightDistributionDataSourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcLightDistributionDataSourceSelect > list;
};
/// IfcMaterialSelect provides selection of either a material
/// definition or a material usage definition that can be assigned to
@@ -446,6 +473,7 @@ public:
class IFC_PARSE_API IfcMaterialSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMaterialSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A measure value is a value as defined in ISO 31-0 (clause 2).
///
@@ -459,6 +487,7 @@ public:
class IFC_PARSE_API IfcMeasureValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMeasureValue > list;
};
/// IfcMetricValueSelect is a select type that enables selection of the data type for the value component of an IfcMetric.
///
@@ -475,6 +504,7 @@ public:
class IFC_PARSE_API IfcMetricValueSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcMetricValueSelect > list;
};
/// Definition from IAI: A measure for modulus of rotational subgrade reaction which expresses the rotational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -482,6 +512,7 @@ public:
class IFC_PARSE_API IfcModulusOfRotationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfRotationalSubgradeReactionSelect > list;
};
/// Definition from IAI: Bedding measure which expresses the bedding of a structural face item per area. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -489,6 +520,7 @@ public:
class IFC_PARSE_API IfcModulusOfSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfSubgradeReactionSelect > list;
};
/// Definition from IAI: A measure for modulus of translational subgrade reaction which expresses the translational bedding of a structural curve item per length. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -496,6 +528,7 @@ public:
class IFC_PARSE_API IfcModulusOfTranslationalSubgradeReactionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcModulusOfTranslationalSubgradeReactionSelect > list;
};
/// IfcObjectReferenceSelect is a select type, that holds a list of resource level entities that can be used as properties within a property set.
///
@@ -503,6 +536,7 @@ public:
class IFC_PARSE_API IfcObjectReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcObjectReferenceSelect > list;
};
/// IfcPointOrVertexPoint provides the option to either select a geometric point (IfcPoint and subtypes) within a geometric model, or a vertex with associated point coordinates (IfcVertexPoint) within a topological model.
/// SELECT
@@ -514,6 +548,7 @@ public:
class IFC_PARSE_API IfcPointOrVertexPoint : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPointOrVertexPoint > list;
};
/// IfcProcessSelectprovides the option to either
/// select a process or activity occurrence, IfcProcess,
@@ -528,11 +563,13 @@ public:
class IFC_PARSE_API IfcProcessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProcessSelect > list;
};
class IFC_PARSE_API IfcProductRepresentationSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductRepresentationSelect > list;
};
/// IfcProductSelectprovides the option to either select a
/// product occurrence, IfcProduct, or a product type,
@@ -546,11 +583,13 @@ public:
class IFC_PARSE_API IfcProductSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcProductSelect > list;
};
class IFC_PARSE_API IfcPropertySetDefinitionSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcPropertySetDefinitionSelect > list;
};
/// IfcResourceObjectSelect enables selection of resource level objects that are to be related to an resource level relationship object. The use of IfcResourceObjectSelect includes the ability to assign an external reference entity (library, classification, or documentation reference) to entities within the resource level.
///
@@ -558,6 +597,7 @@ public:
class IFC_PARSE_API IfcResourceObjectSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceObjectSelect > list;
};
/// IfcResourceSelectprovides the option to either select a
/// resource occurrence, IfcResource, or a resource type,
@@ -571,6 +611,7 @@ public:
class IFC_PARSE_API IfcResourceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcResourceSelect > list;
};
/// Definition from IAI: A measure of rotational stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -578,11 +619,13 @@ public:
class IFC_PARSE_API IfcRotationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcRotationalStiffnessSelect > list;
};
class IFC_PARSE_API IfcSegmentIndexSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSegmentIndexSelect > list;
};
/// Definition from ISO/CD 10303-42:1992 This type collects together, for reference when constructing more complex models, the subtypes which have the characteristics of a shell. A shell is a connected object of fixed dimensionality d = 0; 1; or 2, typically used to bound a region. The domain of a shell, if present, includes its bounds and 0 £ X < ¥.
///
@@ -598,6 +641,7 @@ public:
class IFC_PARSE_API IfcShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcShell > list;
};
/// IfcSimpleValue is a select type for selecting between simple value types.
///
@@ -621,6 +665,7 @@ public:
class IFC_PARSE_API IfcSimpleValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSimpleValue > list;
};
/// Definition from ISO/CD 10303-46:1992: The size select is a selection of a specific positive length measure.
///
@@ -637,6 +682,7 @@ public:
class IFC_PARSE_API IfcSizeSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSizeSelect > list;
};
/// The IfcSolidOrShell provides the option to either select a geometric volume (IfcSolidModel and subtypes) within a geometric model, or a shell (IfcClosedShell) within a topological model.
/// SELECT
@@ -648,6 +694,7 @@ public:
class IFC_PARSE_API IfcSolidOrShell : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSolidOrShell > list;
};
/// Definition from IAI: The
/// IfcSpaceBoundarySelectselects either an internal space
@@ -664,11 +711,13 @@ public:
class IFC_PARSE_API IfcSpaceBoundarySelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpaceBoundarySelect > list;
};
class IFC_PARSE_API IfcSpatialReferenceSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpatialReferenceSelect > list;
};
/// The IfcSpecularHighlightSelect defines the selectable types of value for specular highlight sharpness.
///
@@ -683,6 +732,7 @@ public:
class IFC_PARSE_API IfcSpecularHighlightSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSpecularHighlightSelect > list;
};
/// Definition from IAI: This type definition shall be used to
/// distinguish between a reference to an instance either of
@@ -696,6 +746,7 @@ public:
class IFC_PARSE_API IfcStructuralActivityAssignmentSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcStructuralActivityAssignmentSelect > list;
};
/// IfcSurfaceOrFaceSurface provides the option to either select a geometric surface (IfcSurface
/// and subtypes) within a geometric model, or a face with associated surface geometry and coordinates (IfcFaceSurface) within a topological model.
@@ -709,6 +760,7 @@ public:
class IFC_PARSE_API IfcSurfaceOrFaceSurface : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceOrFaceSurface > list;
};
/// Definition from ISO/CD 10303-46:1992: The surface style element select is a selection of the different surface styles to use in the presentation of the side of a surface.
///
@@ -722,6 +774,7 @@ public:
class IFC_PARSE_API IfcSurfaceStyleElementSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcSurfaceStyleElementSelect > list;
};
/// IfcTextFontSelect allows for either a predefined text font, a text font model or an externally defined text font to be used to describe the font of a text literal. The definition of the text font model is based on W3C TR Cascading Style Sheet Version 1, whereas the definition of predefined text font is based on ISO 10303.
///
@@ -733,12 +786,14 @@ public:
class IFC_PARSE_API IfcTextFontSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTextFontSelect > list;
};
/// IfcTimeOrRatioSelect allows a value to be selected as being either a ratio or a time measure.
/// HISTORY New SELECT in IFC2x4
class IFC_PARSE_API IfcTimeOrRatioSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTimeOrRatioSelect > list;
};
/// Definition from IAI: A measure of linear stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -746,6 +801,7 @@ public:
class IFC_PARSE_API IfcTranslationalStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTranslationalStiffnessSelect > list;
};
/// Definition from ISO/CD 10303-42:1992: This select type identifies the two possible ways of trimming a parametric curve; by a Cartesian point on the curve, or by a REAL number defining a parameter value within the parametric range of the curve.
///
@@ -755,6 +811,7 @@ public:
class IFC_PARSE_API IfcTrimmingSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcTrimmingSelect > list;
};
/// Definition from ISO/CD 10303-41:1992: A unit is a physical quantity, with a value of one, which is used as a standard in terms of which other quantities are expressed.
///
@@ -772,6 +829,7 @@ public:
class IFC_PARSE_API IfcUnit : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcUnit > list;
};
/// IfcValue is a select type for selecting between more specialised select types IfcSimpleValue,
/// IfcMeasureValue and IfcDerivedMeasureValue.
@@ -786,6 +844,7 @@ public:
class IFC_PARSE_API IfcValue : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcValue > list;
};
/// Definition from ISO/CD 10303-42:1992: This type is used to
/// identify the types of entity which can participate in vector computations.
@@ -798,6 +857,7 @@ public:
class IFC_PARSE_API IfcVectorOrDirection : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcVectorOrDirection > list;
};
/// Definition from IAI: A measure of warping stiffness. TRUE denotes infinite stiffness (rigidity). FALSE denotes no stiffness (a release). A numeric value denotes finite linear-elastic stiffness.
///
@@ -805,6 +865,7 @@ public:
class IFC_PARSE_API IfcWarpingStiffnessSelect : public virtual IfcUtil::IfcBaseInterface {
public:
static const IfcParse::select_type& Class();
+ typedef aggregate_of< IfcWarpingStiffnessSelect > list;
};
class IFC_PARSE_API IfcActionRequestTypeEnum : public IfcUtil::IfcBaseType {
/// IfcActionRequestTypeEnum defines the types of sources through which a request can be made.
@@ -10746,12 +10807,12 @@ public:
std::string TimeStamp() const;
void setTimeStamp(std::string v);
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIrregularTimeSeriesValue (IfcEntityInstanceData* e);
- IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of_instance::ptr v2_ListValues);
+ IfcIrregularTimeSeriesValue (std::string v1_TimeStamp, aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v2_ListValues);
typedef aggregate_of< IfcIrregularTimeSeriesValue > list;
};
/// An IfcLibraryInformation describes a library where a library is a structured store of information, normally organized in a manner which allows information lookup through an index or reference value. IfcLibraryInformation provides the library Name and optional Version, VersionDate and Publisher attributes. A Location may be added for electronic access to the library.
@@ -10929,15 +10990,15 @@ public:
class IFC_PARSE_API IfcMaterialClassificationRelationship : public IfcUtil::IfcBaseEntity {
public:
/// The material classifications identifying the type of material.
- aggregate_of_instance::ptr MaterialClassifications() const;
- void setMaterialClassifications(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcClassificationSelect >::ptr MaterialClassifications() const;
+ void setMaterialClassifications(aggregate_of< ::Ifc4x3_tc1::IfcClassificationSelect >::ptr v);
/// Material being classified.
::Ifc4x3_tc1::IfcMaterial* ClassifiedMaterial() const;
void setClassifiedMaterial(::Ifc4x3_tc1::IfcMaterial* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcMaterialClassificationRelationship (IfcEntityInstanceData* e);
- IfcMaterialClassificationRelationship (aggregate_of_instance::ptr v1_MaterialClassifications, ::Ifc4x3_tc1::IfcMaterial* v2_ClassifiedMaterial);
+ IfcMaterialClassificationRelationship (aggregate_of< ::Ifc4x3_tc1::IfcClassificationSelect >::ptr v1_MaterialClassifications, ::Ifc4x3_tc1::IfcMaterial* v2_ClassifiedMaterial);
typedef aggregate_of< IfcMaterialClassificationRelationship > list;
};
/// IfcMaterialDefinition is a general supertype for all
@@ -11729,15 +11790,15 @@ public:
boost::optional< std::string > Description() const;
void setDescription(boost::optional< std::string > v);
/// The set of layered items, which are assigned to this layer.
- aggregate_of_instance::ptr AssignedItems() const;
- void setAssignedItems(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcLayeredItem >::ptr AssignedItems() const;
+ void setAssignedItems(aggregate_of< ::Ifc4x3_tc1::IfcLayeredItem >::ptr v);
/// An (internal) identifier assigned to the layer.
boost::optional< std::string > Identifier() const;
void setIdentifier(boost::optional< std::string > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerAssignment (IfcEntityInstanceData* e);
- IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
+ IfcPresentationLayerAssignment (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_tc1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier);
typedef aggregate_of< IfcPresentationLayerAssignment > list;
};
/// An IfcPresentationLayerAssignmentWithStyle extends the presentation layer assignment with capabilities to define visibility control, access control and common style information.
@@ -11774,7 +11835,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPresentationLayerWithStyle (IfcEntityInstanceData* e);
- IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_tc1::IfcPresentationStyle >::ptr v8_LayerStyles);
+ IfcPresentationLayerWithStyle (std::string v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_tc1::IfcLayeredItem >::ptr v3_AssignedItems, boost::optional< std::string > v4_Identifier, boost::logic::tribool v5_LayerOn, boost::logic::tribool v6_LayerFrozen, boost::logic::tribool v7_LayerBlocked, aggregate_of< ::Ifc4x3_tc1::IfcPresentationStyle >::ptr v8_LayerStyles);
typedef aggregate_of< IfcPresentationLayerWithStyle > list;
};
/// IfcPresentationStyle is an abstract generalization of style table for presentation information assigned to geometric representation items. It includes styles for curves, areas, surfaces, text and symbols. Style information may include colour, hatching, rendering, and text fonts.
@@ -12122,15 +12183,15 @@ public:
std::string Name() const;
void setName(std::string v);
/// List of values that form the enumeration.
- aggregate_of_instance::ptr EnumerationValues() const;
- void setEnumerationValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr EnumerationValues() const;
+ void setEnumerationValues(aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v);
/// Unit for the enumerator values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_tc1::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_tc1::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeration (IfcEntityInstanceData* e);
- IfcPropertyEnumeration (std::string v1_Name, aggregate_of_instance::ptr v2_EnumerationValues, ::Ifc4x3_tc1::IfcUnit* v3_Unit);
+ IfcPropertyEnumeration (std::string v1_Name, aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v2_EnumerationValues, ::Ifc4x3_tc1::IfcUnit* v3_Unit);
typedef aggregate_of< IfcPropertyEnumeration > list;
};
/// IfcQuantityArea is a physical quantity that defines a derived area measure to provide an element's physical property. It is normally derived from the physical properties of the element under the specific measure rules given by a method of measurement.
@@ -13054,12 +13115,12 @@ public:
::Ifc4x3_tc1::IfcSurfaceSide::Value Side() const;
void setSide(::Ifc4x3_tc1::IfcSurfaceSide::Value v);
/// A collection of different surface styles.
- aggregate_of_instance::ptr Styles() const;
- void setStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcSurfaceStyleElementSelect >::ptr Styles() const;
+ void setStyles(aggregate_of< ::Ifc4x3_tc1::IfcSurfaceStyleElementSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcSurfaceStyle (IfcEntityInstanceData* e);
- IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_tc1::IfcSurfaceSide::Value v2_Side, aggregate_of_instance::ptr v3_Styles);
+ IfcSurfaceStyle (boost::optional< std::string > v1_Name, ::Ifc4x3_tc1::IfcSurfaceSide::Value v2_Side, aggregate_of< ::Ifc4x3_tc1::IfcSurfaceStyleElementSelect >::ptr v3_Styles);
typedef aggregate_of< IfcSurfaceStyle > list;
};
/// IfcSurfaceStyleLighting is a container class for properties for calculation of physically exact illuminance related to a particular surface style.
@@ -13368,15 +13429,15 @@ public:
class IFC_PARSE_API IfcTableRow : public IfcUtil::IfcBaseEntity {
public:
/// The data value of the table cell..
- boost::optional< aggregate_of_instance::ptr > RowCells() const;
- void setRowCells(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > RowCells() const;
+ void setRowCells(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v);
/// Flag which identifies if the row is a heading row or a row which contains row values. NOTE - If the row is a heading, the flag takes the value = TRUE.
boost::optional< bool > IsHeading() const;
void setIsHeading(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTableRow (IfcEntityInstanceData* e);
- IfcTableRow (boost::optional< aggregate_of_instance::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
+ IfcTableRow (boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v1_RowCells, boost::optional< bool > v2_IsHeading);
typedef aggregate_of< IfcTableRow > list;
};
/// IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
@@ -13950,12 +14011,12 @@ public:
class IFC_PARSE_API IfcTimeSeriesValue : public IfcUtil::IfcBaseEntity {
public:
/// A list of time-series values. At least one value is required.
- aggregate_of_instance::ptr ListValues() const;
- void setListValues(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr ListValues() const;
+ void setListValues(aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTimeSeriesValue (IfcEntityInstanceData* e);
- IfcTimeSeriesValue (aggregate_of_instance::ptr v1_ListValues);
+ IfcTimeSeriesValue (aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr v1_ListValues);
typedef aggregate_of< IfcTimeSeriesValue > list;
};
/// Definition from ISO/CD 10303-42:1992: The topological representation item is the supertype for all the topological representation items in the geometry resource.
@@ -14021,12 +14082,12 @@ public:
class IFC_PARSE_API IfcUnitAssignment : public IfcUtil::IfcBaseEntity {
public:
/// Units to be included within a unit assignment.
- aggregate_of_instance::ptr Units() const;
- void setUnits(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcUnit >::ptr Units() const;
+ void setUnits(aggregate_of< ::Ifc4x3_tc1::IfcUnit >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcUnitAssignment (IfcEntityInstanceData* e);
- IfcUnitAssignment (aggregate_of_instance::ptr v1_Units);
+ IfcUnitAssignment (aggregate_of< ::Ifc4x3_tc1::IfcUnit >::ptr v1_Units);
typedef aggregate_of< IfcUnitAssignment > list;
};
/// Definition from ISO/CD 10303-42:1992: A vertex is the topological construct corresponding to a point. It has dimensionality 0 and extent 0. The domain of a vertex, if present, is a point in m dimensional real space RM; this is represented by the vertex point subtype.
@@ -15040,8 +15101,8 @@ public:
::Ifc4x3_tc1::IfcActorSelect* DocumentOwner() const;
void setDocumentOwner(::Ifc4x3_tc1::IfcActorSelect* v);
/// The persons and/or organizations who have created this document or contributed to it.
- boost::optional< aggregate_of_instance::ptr > Editors() const;
- void setEditors(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcActorSelect >::ptr > Editors() const;
+ void setEditors(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcActorSelect >::ptr > v);
/// Date and time stamp when the document was originally created.
///
/// IFC2x4 CHANGE The data type has been changed to IfcDateTime, the date time string according to ISO8601.
@@ -15082,7 +15143,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcDocumentInformation (IfcEntityInstanceData* e);
- IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_tc1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of_instance::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_tc1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_tc1::IfcDocumentStatusEnum::Value > v17_Status);
+ IfcDocumentInformation (std::string v1_Identification, std::string v2_Name, boost::optional< std::string > v3_Description, boost::optional< std::string > v4_Location, boost::optional< std::string > v5_Purpose, boost::optional< std::string > v6_IntendedUse, boost::optional< std::string > v7_Scope, boost::optional< std::string > v8_Revision, ::Ifc4x3_tc1::IfcActorSelect* v9_DocumentOwner, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcActorSelect >::ptr > v10_Editors, boost::optional< std::string > v11_CreationTime, boost::optional< std::string > v12_LastRevisionTime, boost::optional< std::string > v13_ElectronicFormat, boost::optional< std::string > v14_ValidFrom, boost::optional< std::string > v15_ValidUntil, boost::optional< ::Ifc4x3_tc1::IfcDocumentConfidentialityEnum::Value > v16_Confidentiality, boost::optional< ::Ifc4x3_tc1::IfcDocumentStatusEnum::Value > v17_Status);
typedef aggregate_of< IfcDocumentInformation > list;
};
/// An IfcDocumentInformationRelationship is a relationship class that enables a document to have the ability to reference other documents.
@@ -15323,12 +15384,12 @@ public:
::Ifc4x3_tc1::IfcExternalReference* RelatingReference() const;
void setRelatingReference(::Ifc4x3_tc1::IfcExternalReference* v);
/// Objects within the list of IfcResourceObjectSelect that can be tagged by an external reference to a dictionary, library, catalogue, classification or documentation.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcExternalReferenceRelationship (IfcEntityInstanceData* e);
- IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_tc1::IfcExternalReference* v3_RelatingReference, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcExternalReferenceRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_tc1::IfcExternalReference* v3_RelatingReference, aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcExternalReferenceRelationship > list;
};
/// Definition from ISO/CD 10303-42:1992: A face is a topological
@@ -15539,14 +15600,14 @@ public:
class IFC_PARSE_API IfcFillAreaStyle : public IfcPresentationStyle {
public:
/// The set of fill area styles to use in presenting visible curve segments, annotation fill areas or surfaces.
- aggregate_of_instance::ptr FillStyles() const;
- void setFillStyles(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcFillStyleSelect >::ptr FillStyles() const;
+ void setFillStyles(aggregate_of< ::Ifc4x3_tc1::IfcFillStyleSelect >::ptr v);
boost::optional< bool > ModelOrDraughting() const;
void setModelOrDraughting(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcFillAreaStyle (IfcEntityInstanceData* e);
- IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of_instance::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
+ IfcFillAreaStyle (boost::optional< std::string > v1_Name, aggregate_of< ::Ifc4x3_tc1::IfcFillStyleSelect >::ptr v2_FillStyles, boost::optional< bool > v3_ModelOrDraughting);
typedef aggregate_of< IfcFillAreaStyle > list;
};
/// Definition from ISO/CD 10303-42:1992: A geometric
@@ -15700,12 +15761,12 @@ public:
class IFC_PARSE_API IfcGeometricSet : public IfcGeometricRepresentationItem {
public:
/// The geometric elements which make up the geometric set, these may be points, curves or surfaces; but are required to be of the same coordinate space dimensionality.
- aggregate_of_instance::ptr Elements() const;
- void setElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcGeometricSetSelect >::ptr Elements() const;
+ void setElements(aggregate_of< ::Ifc4x3_tc1::IfcGeometricSetSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricSet (IfcEntityInstanceData* e);
- IfcGeometricSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricSet (aggregate_of< ::Ifc4x3_tc1::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricSet > list;
};
/// IfcGridPlacement provides a specialization of IfcObjectPlacement in which
@@ -17718,15 +17779,15 @@ public:
class IFC_PARSE_API IfcResourceApprovalRelationship : public IfcResourceLevelRelationship {
public:
/// Resource objects that are approved.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v);
/// The approval for the resource objects selected.
::Ifc4x3_tc1::IfcApproval* RelatingApproval() const;
void setRelatingApproval(::Ifc4x3_tc1::IfcApproval* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceApprovalRelationship (IfcEntityInstanceData* e);
- IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of_instance::ptr v3_RelatedResourceObjects, ::Ifc4x3_tc1::IfcApproval* v4_RelatingApproval);
+ IfcResourceApprovalRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v3_RelatedResourceObjects, ::Ifc4x3_tc1::IfcApproval* v4_RelatingApproval);
typedef aggregate_of< IfcResourceApprovalRelationship > list;
};
/// An IfcResourceConstraintRelationship is a relationship
@@ -17755,12 +17816,12 @@ public:
::Ifc4x3_tc1::IfcConstraint* RelatingConstraint() const;
void setRelatingConstraint(::Ifc4x3_tc1::IfcConstraint* v);
/// The properties to which a constraint is to be related.
- aggregate_of_instance::ptr RelatedResourceObjects() const;
- void setRelatedResourceObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr RelatedResourceObjects() const;
+ void setRelatedResourceObjects(aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcResourceConstraintRelationship (IfcEntityInstanceData* e);
- IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_tc1::IfcConstraint* v3_RelatingConstraint, aggregate_of_instance::ptr v4_RelatedResourceObjects);
+ IfcResourceConstraintRelationship (boost::optional< std::string > v1_Name, boost::optional< std::string > v2_Description, ::Ifc4x3_tc1::IfcConstraint* v3_RelatingConstraint, aggregate_of< ::Ifc4x3_tc1::IfcResourceObjectSelect >::ptr v4_RelatedResourceObjects);
typedef aggregate_of< IfcResourceConstraintRelationship > list;
};
/// IfcResourceTime captures the time-related information about a construction resource.
@@ -18017,12 +18078,12 @@ public:
/// The shells shall not overlap or intersect except at common faces, edges or vertices.
class IFC_PARSE_API IfcShellBasedSurfaceModel : public IfcGeometricRepresentationItem {
public:
- aggregate_of_instance::ptr SbsmBoundary() const;
- void setSbsmBoundary(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcShell >::ptr SbsmBoundary() const;
+ void setSbsmBoundary(aggregate_of< ::Ifc4x3_tc1::IfcShell >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcShellBasedSurfaceModel (IfcEntityInstanceData* e);
- IfcShellBasedSurfaceModel (aggregate_of_instance::ptr v1_SbsmBoundary);
+ IfcShellBasedSurfaceModel (aggregate_of< ::Ifc4x3_tc1::IfcShell >::ptr v1_SbsmBoundary);
typedef aggregate_of< IfcShellBasedSurfaceModel > list;
};
/// IfcSimpleProperty is a generalization of a single property object. The various subtypes of IfcSimpleProperty establish different ways in which a property value can be set.
@@ -20942,7 +21003,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcGeometricCurveSet (IfcEntityInstanceData* e);
- IfcGeometricCurveSet (aggregate_of_instance::ptr v1_Elements);
+ IfcGeometricCurveSet (aggregate_of< ::Ifc4x3_tc1::IfcGeometricSetSelect >::ptr v1_Elements);
typedef aggregate_of< IfcGeometricCurveSet > list;
};
/// IfcIShapeProfileDef
@@ -22089,15 +22150,15 @@ public:
/// Enumeration values, which shall be listed in the referenced IfcPropertyEnumeration, if such a reference is provided.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > EnumerationValues() const;
- void setEnumerationValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > EnumerationValues() const;
+ void setEnumerationValues(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v);
/// Enumeration from which a enumeration value has been selected. The referenced enumeration also establishes the unit of the enumeration value.
::Ifc4x3_tc1::IfcPropertyEnumeration* EnumerationReference() const;
void setEnumerationReference(::Ifc4x3_tc1::IfcPropertyEnumeration* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyEnumeratedValue (IfcEntityInstanceData* e);
- IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_EnumerationValues, ::Ifc4x3_tc1::IfcPropertyEnumeration* v4_EnumerationReference);
+ IfcPropertyEnumeratedValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v3_EnumerationValues, ::Ifc4x3_tc1::IfcPropertyEnumeration* v4_EnumerationReference);
typedef aggregate_of< IfcPropertyEnumeratedValue > list;
};
/// An IfcPropertyListValue
@@ -22170,15 +22231,15 @@ public:
/// List of property values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > ListValues() const;
- void setListValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > ListValues() const;
+ void setListValues(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v);
/// Unit for the list values, if not given, the default value for the measure type (given by the TYPE of nominal value) is used as defined by the global unit assignment at IfcProject.
::Ifc4x3_tc1::IfcUnit* Unit() const;
void setUnit(::Ifc4x3_tc1::IfcUnit* v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyListValue (IfcEntityInstanceData* e);
- IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_ListValues, ::Ifc4x3_tc1::IfcUnit* v4_Unit);
+ IfcPropertyListValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v3_ListValues, ::Ifc4x3_tc1::IfcUnit* v4_Unit);
typedef aggregate_of< IfcPropertyListValue > list;
};
/// IfcPropertyReferenceValue allows a property value to
@@ -22518,13 +22579,13 @@ public:
/// List of defining values, which determine the defined values. This list shall have unique values only.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefiningValues() const;
- void setDefiningValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > DefiningValues() const;
+ void setDefiningValues(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v);
/// Defined values which are applicable for the scope as defined by the defining values.
///
/// IFC2x4 CHANGEÂ The attribute has been made optional with upward compatibility for file based exchange.
- boost::optional< aggregate_of_instance::ptr > DefinedValues() const;
- void setDefinedValues(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > DefinedValues() const;
+ void setDefinedValues(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v);
/// Expression for the derivation of defined values from the defining values, the expression is given for information only, i.e. no automatic processing can be expected from the expression.
boost::optional< std::string > Expression() const;
void setExpression(boost::optional< std::string > v);
@@ -22542,7 +22603,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcPropertyTableValue (IfcEntityInstanceData* e);
- IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of_instance::ptr > v3_DefiningValues, boost::optional< aggregate_of_instance::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_tc1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_tc1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_tc1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
+ IfcPropertyTableValue (std::string v1_Name, boost::optional< std::string > v2_Specification, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v3_DefiningValues, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcValue >::ptr > v4_DefinedValues, boost::optional< std::string > v5_Expression, ::Ifc4x3_tc1::IfcUnit* v6_DefiningUnit, ::Ifc4x3_tc1::IfcUnit* v7_DefinedUnit, boost::optional< ::Ifc4x3_tc1::IfcCurveInterpolationEnum::Value > v8_CurveInterpolation);
typedef aggregate_of< IfcPropertyTableValue > list;
};
/// The IfcPropertyTemplate is an abstract supertype
@@ -23038,12 +23099,12 @@ public:
/// Set of object or property definitions to which the external references or information is associated. It includes object and type objects, property set templates, property templates and property sets and contexts.
///
/// IFC2x4 CHANGEÂ The attribute datatype has been changed from IfcRoot to IfcDefinitionSelect.
- aggregate_of_instance::ptr RelatedObjects() const;
- void setRelatedObjects(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr RelatedObjects() const;
+ void setRelatedObjects(aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociates (IfcEntityInstanceData* e);
- IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects);
+ IfcRelAssociates (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects);
typedef aggregate_of< IfcRelAssociates > list;
};
/// The entity IfcRelAssociatesApproval is used to apply approval information defined by IfcApproval, in IfcApprovalResource schema, to subtypes of IfcRoot.
@@ -23057,7 +23118,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesApproval (IfcEntityInstanceData* e);
- IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcApproval* v6_RelatingApproval);
+ IfcRelAssociatesApproval (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcApproval* v6_RelatingApproval);
typedef aggregate_of< IfcRelAssociatesApproval > list;
};
/// The objectified relationship
@@ -23098,7 +23159,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesClassification (IfcEntityInstanceData* e);
- IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcClassificationSelect* v6_RelatingClassification);
+ IfcRelAssociatesClassification (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcClassificationSelect* v6_RelatingClassification);
typedef aggregate_of< IfcRelAssociatesClassification > list;
};
/// The entity IfcRelAssociatesConstraint is used to apply constraint information defined by IfcConstraint, in the IfcConstraintResource schema, to subtypes of IfcRoot.
@@ -23115,7 +23176,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesConstraint (IfcEntityInstanceData* e);
- IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_tc1::IfcConstraint* v7_RelatingConstraint);
+ IfcRelAssociatesConstraint (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, boost::optional< std::string > v6_Intent, ::Ifc4x3_tc1::IfcConstraint* v7_RelatingConstraint);
typedef aggregate_of< IfcRelAssociatesConstraint > list;
};
/// The objectified relationship (IfcRelAssociatesDocument) handles the assignment of a document information (items of the select IfcDocumentSelect) to objects occurrences (subtypes of IfcObject) or object types (subtypes of IfcTypeObject).
@@ -23133,7 +23194,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesDocument (IfcEntityInstanceData* e);
- IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcDocumentSelect* v6_RelatingDocument);
+ IfcRelAssociatesDocument (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcDocumentSelect* v6_RelatingDocument);
typedef aggregate_of< IfcRelAssociatesDocument > list;
};
/// The objectified relationship (IfcRelAssociatesLibrary) handles the assignment of a library item (items of the select IfcLibrarySelect) to subtypes of IfcObjectDefinition or IfcPropertyDefinition.
@@ -23151,7 +23212,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesLibrary (IfcEntityInstanceData* e);
- IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcLibrarySelect* v6_RelatingLibrary);
+ IfcRelAssociatesLibrary (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcLibrarySelect* v6_RelatingLibrary);
typedef aggregate_of< IfcRelAssociatesLibrary > list;
};
/// Definition from IAI: Objectified relationship between a
@@ -23256,7 +23317,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesMaterial (IfcEntityInstanceData* e);
- IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcMaterialSelect* v6_RelatingMaterial);
+ IfcRelAssociatesMaterial (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcMaterialSelect* v6_RelatingMaterial);
typedef aggregate_of< IfcRelAssociatesMaterial > list;
};
@@ -23267,7 +23328,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelAssociatesProfileDef (IfcEntityInstanceData* e);
- IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcProfileDef* v6_RelatingProfileDef);
+ IfcRelAssociatesProfileDef (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v5_RelatedObjects, ::Ifc4x3_tc1::IfcProfileDef* v6_RelatingProfileDef);
typedef aggregate_of< IfcRelAssociatesProfileDef > list;
};
/// IfcRelConnects is a connectivity relationship that connects objects under some criteria. As a general connectivity it does not imply constraints, however subtypes of the relationship define the applicable object types for the connectivity relationship and the semantics of the particular connectivity.
@@ -23740,12 +23801,12 @@ public:
::Ifc4x3_tc1::IfcContext* RelatingContext() const;
void setRelatingContext(::Ifc4x3_tc1::IfcContext* v);
/// Set of object or property definitions that are assigned to a context and to which the unit and representation context definitions of that context apply.
- aggregate_of_instance::ptr RelatedDefinitions() const;
- void setRelatedDefinitions(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr RelatedDefinitions() const;
+ void setRelatedDefinitions(aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelDeclares (IfcEntityInstanceData* e);
- IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_tc1::IfcContext* v5_RelatingContext, aggregate_of_instance::ptr v6_RelatedDefinitions);
+ IfcRelDeclares (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, ::Ifc4x3_tc1::IfcContext* v5_RelatingContext, aggregate_of< ::Ifc4x3_tc1::IfcDefinitionSelect >::ptr v6_RelatedDefinitions);
typedef aggregate_of< IfcRelDeclares > list;
};
/// The decomposition relationship,
@@ -24260,8 +24321,8 @@ class IFC_PARSE_API IfcRelReferencedInSpatialStructure : public IfcRelConnects
public:
/// Set of products, which are referenced within this level of the spatial structure hierarchy.
/// NOTEÂ Referenced elements are contained elsewhere within the spatial structure, they are referenced additionally by this spatial structure element, e.g., because they span several stories.
- aggregate_of_instance::ptr RelatedElements() const;
- void setRelatedElements(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcSpatialReferenceSelect >::ptr RelatedElements() const;
+ void setRelatedElements(aggregate_of< ::Ifc4x3_tc1::IfcSpatialReferenceSelect >::ptr v);
/// Spatial structure element, within which the element is referenced. Any element can be contained within zero, one or many elements of the project spatial and zoning structure.
///
/// IFC2x Edition 4 CHANGEÂ The attribute relatingStructure as been promoted to the new supertype IfcSpatialElement with upward compatibility for file based exchange.
@@ -24270,7 +24331,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcRelReferencedInSpatialStructure (IfcEntityInstanceData* e);
- IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of_instance::ptr v5_RelatedElements, ::Ifc4x3_tc1::IfcSpatialElement* v6_RelatingStructure);
+ IfcRelReferencedInSpatialStructure (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, aggregate_of< ::Ifc4x3_tc1::IfcSpatialReferenceSelect >::ptr v5_RelatedElements, ::Ifc4x3_tc1::IfcSpatialElement* v6_RelatingStructure);
typedef aggregate_of< IfcRelReferencedInSpatialStructure > list;
};
/// IfcRelSequence is a
@@ -30801,14 +30862,14 @@ class IFC_PARSE_API IfcIndexedPolyCurve : public IfcBoundedCurve {
public:
::Ifc4x3_tc1::IfcCartesianPointList* Points() const;
void setPoints(::Ifc4x3_tc1::IfcCartesianPointList* v);
- boost::optional< aggregate_of_instance::ptr > Segments() const;
- void setSegments(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcSegmentIndexSelect >::ptr > Segments() const;
+ void setSegments(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcSegmentIndexSelect >::ptr > v);
boost::optional< bool > SelfIntersect() const;
void setSelfIntersect(boost::optional< bool > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcIndexedPolyCurve (IfcEntityInstanceData* e);
- IfcIndexedPolyCurve (::Ifc4x3_tc1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of_instance::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
+ IfcIndexedPolyCurve (::Ifc4x3_tc1::IfcCartesianPointList* v1_Points, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcSegmentIndexSelect >::ptr > v2_Segments, boost::optional< bool > v3_SelfIntersect);
typedef aggregate_of< IfcIndexedPolyCurve > list;
};
/// The flow treatment device type IfcInterceptorType defines commonly shared information for occurrences of interceptors. The set of shared information may include:
@@ -32842,12 +32903,12 @@ public:
void setTransverseBarSpacing(boost::optional< double > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingMeshType (IfcEntityInstanceData* e);
- IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_tc1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v20_BendingParameters);
+ IfcReinforcingMeshType (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_tc1::IfcReinforcingMeshTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_MeshLength, boost::optional< double > v12_MeshWidth, boost::optional< double > v13_LongitudinalBarNominalDiameter, boost::optional< double > v14_TransverseBarNominalDiameter, boost::optional< double > v15_LongitudinalBarCrossSectionArea, boost::optional< double > v16_TransverseBarCrossSectionArea, boost::optional< double > v17_LongitudinalBarSpacing, boost::optional< double > v18_TransverseBarSpacing, boost::optional< std::string > v19_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > v20_BendingParameters);
typedef aggregate_of< IfcReinforcingMeshType > list;
};
@@ -35144,11 +35205,11 @@ public:
::Ifc4x3_tc1::IfcCurve* BasisCurve() const;
void setBasisCurve(::Ifc4x3_tc1::IfcCurve* v);
/// The first trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim1() const;
- void setTrim1(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr Trim1() const;
+ void setTrim1(aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr v);
/// The second trimming point which may be specified as a Cartesian point, as a real parameter or both.
- aggregate_of_instance::ptr Trim2() const;
- void setTrim2(aggregate_of_instance::ptr v);
+ aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr Trim2() const;
+ void setTrim2(aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr v);
/// Flag to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve.
bool SenseAgreement() const;
void setSenseAgreement(bool v);
@@ -35158,7 +35219,7 @@ public:
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcTrimmedCurve (IfcEntityInstanceData* e);
- IfcTrimmedCurve (::Ifc4x3_tc1::IfcCurve* v1_BasisCurve, aggregate_of_instance::ptr v2_Trim1, aggregate_of_instance::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_tc1::IfcTrimmingPreference::Value v5_MasterRepresentation);
+ IfcTrimmedCurve (::Ifc4x3_tc1::IfcCurve* v1_BasisCurve, aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr v2_Trim1, aggregate_of< ::Ifc4x3_tc1::IfcTrimmingSelect >::ptr v3_Trim2, bool v4_SenseAgreement, ::Ifc4x3_tc1::IfcTrimmingPreference::Value v5_MasterRepresentation);
typedef aggregate_of< IfcTrimmedCurve > list;
};
/// The energy conversion device type IfcTubeBundleType defines commonly shared information for occurrences of tube bundles. The set of shared information may include:
@@ -43210,12 +43271,12 @@ public:
void setBarSurface(boost::optional< ::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::Value > v);
boost::optional< std::string > BendingShapeCode() const;
void setBendingShapeCode(boost::optional< std::string > v);
- boost::optional< aggregate_of_instance::ptr > BendingParameters() const;
- void setBendingParameters(boost::optional< aggregate_of_instance::ptr > v);
+ boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > BendingParameters() const;
+ void setBendingParameters(boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > v);
virtual const IfcParse::entity& declaration() const;
static const IfcParse::entity& Class();
IfcReinforcingBarType (IfcEntityInstanceData* e);
- IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_tc1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of_instance::ptr > v16_BendingParameters);
+ IfcReinforcingBarType (std::string v1_GlobalId, ::Ifc4x3_tc1::IfcOwnerHistory* v2_OwnerHistory, boost::optional< std::string > v3_Name, boost::optional< std::string > v4_Description, boost::optional< std::string > v5_ApplicableOccurrence, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcPropertySetDefinition >::ptr > v6_HasPropertySets, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcRepresentationMap >::ptr > v7_RepresentationMaps, boost::optional< std::string > v8_Tag, boost::optional< std::string > v9_ElementType, ::Ifc4x3_tc1::IfcReinforcingBarTypeEnum::Value v10_PredefinedType, boost::optional< double > v11_NominalDiameter, boost::optional< double > v12_CrossSectionArea, boost::optional< double > v13_BarLength, boost::optional< ::Ifc4x3_tc1::IfcReinforcingBarSurfaceEnum::Value > v14_BarSurface, boost::optional< std::string > v15_BendingShapeCode, boost::optional< aggregate_of< ::Ifc4x3_tc1::IfcBendingParameterSelect >::ptr > v16_BendingParameters);
typedef aggregate_of< IfcReinforcingBarType > list;
};
/// Definition from ISO 6707-1:1989: Construction enclosing the building from above.
diff --git a/src/ifcparse/IfcHierarchyHelper.cpp b/src/ifcparse/IfcHierarchyHelper.cpp
index a80eb54d91..5387b90d0c 100644
--- a/src/ifcparse/IfcHierarchyHelper.cpp
+++ b/src/ifcparse/IfcHierarchyHelper.cpp
@@ -99,7 +99,7 @@ template
typename Schema::IfcProject* IfcHierarchyHelper::addProject(typename Schema::IfcOwnerHistory* owner_hist) {
typename Schema::IfcRepresentationContext::list::ptr rep_contexts (new typename Schema::IfcRepresentationContext::list);
- aggregate_of_instance::ptr units (new aggregate_of_instance);
+ typename Schema::IfcUnit::list::ptr units (new typename Schema::IfcUnit::list);
typename Schema::IfcDimensionalExponents* dimexp = new typename Schema::IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0);
typename Schema::IfcSIUnit* unit1 = new typename Schema::IfcSIUnit(Schema::IfcUnitEnum::IfcUnit_LENGTHUNIT,
Schema::IfcSIPrefix::IfcSIPrefix_MILLI, Schema::IfcSIUnitName::IfcSIUnitName_METRE);
@@ -416,7 +416,7 @@ typename Schema::IfcSurfaceStyle* getSurfaceStyle(IfcHierarchyHelper& fi
: new typename Schema::IfcSurfaceStyleRendering(colour, 1.0 - a, 0, 0, 0, 0,
0, 0, Schema::IfcReflectanceMethodEnum::IfcReflectanceMethod_FLAT);
- aggregate_of_instance::ptr styles(new aggregate_of_instance());
+ typename Schema::IfcSurfaceStyleElementSelect::list::ptr styles(new typename Schema::IfcSurfaceStyleElementSelect::list);
styles->push(rendering);
typename Schema::IfcSurfaceStyle* surface_style = new typename Schema::IfcSurfaceStyle(
boost::none, Schema::IfcSurfaceSide::IfcSurfaceSide_BOTH, styles);
@@ -432,7 +432,7 @@ template
typename Schema::IfcPresentationStyleAssignment* addStyleAssignment_2x3(IfcHierarchyHelper& file, double r, double g, double b, double a = 1.0)
{
auto surface_style = getSurfaceStyle(file, r, g, b, a);
- aggregate_of_instance::ptr surface_styles(new aggregate_of_instance());
+ typename Schema::IfcPresentationStyleSelect::list::ptr surface_styles(new typename Schema::IfcPresentationStyleSelect::list);
surface_styles->push(surface_style);
typename Schema::IfcPresentationStyleAssignment* style_assignment =
new typename Schema::IfcPresentationStyleAssignment(surface_styles);
@@ -506,7 +506,7 @@ Ifc2x3::IfcStyledItem* create_styled_item(Ifc2x3::IfcRepresentationItem* item, I
#ifdef HAS_SCHEMA_4
Ifc4::IfcStyledItem* create_styled_item(Ifc4::IfcRepresentationItem* item, Ifc4::IfcPresentationStyleAssignment* style_assignment) {
- aggregate_of_instance::ptr style_assignments(new aggregate_of_instance);
+ Ifc4::IfcStyleAssignmentSelect::list::ptr style_assignments(new Ifc4::IfcStyleAssignmentSelect::list);
style_assignments->push(style_assignment);
return new Ifc4::IfcStyledItem(item, style_assignments, boost::none);
}
@@ -514,7 +514,7 @@ Ifc4::IfcStyledItem* create_styled_item(Ifc4::IfcRepresentationItem* item, Ifc4:
#ifdef HAS_SCHEMA_4x1
Ifc4x1::IfcStyledItem* create_styled_item(Ifc4x1::IfcRepresentationItem* item, Ifc4x1::IfcPresentationStyleAssignment* style_assignment) {
- aggregate_of_instance::ptr style_assignments(new aggregate_of_instance);
+ Ifc4x1::IfcStyleAssignmentSelect::list::ptr style_assignments(new Ifc4x1::IfcStyleAssignmentSelect::list);
style_assignments->push(style_assignment);
return new Ifc4x1::IfcStyledItem(item, style_assignments, boost::none);
}
@@ -522,7 +522,7 @@ Ifc4x1::IfcStyledItem* create_styled_item(Ifc4x1::IfcRepresentationItem* item, I
#ifdef HAS_SCHEMA_4x2
Ifc4x2::IfcStyledItem* create_styled_item(Ifc4x2::IfcRepresentationItem* item, Ifc4x2::IfcPresentationStyleAssignment* style_assignment) {
- aggregate_of_instance::ptr style_assignments(new aggregate_of_instance);
+ Ifc4x2::IfcStyleAssignmentSelect::list::ptr style_assignments(new Ifc4x2::IfcStyleAssignmentSelect::list);
style_assignments->push(style_assignment);
return new Ifc4x2::IfcStyledItem(item, style_assignments, boost::none);
}
@@ -530,7 +530,7 @@ Ifc4x2::IfcStyledItem* create_styled_item(Ifc4x2::IfcRepresentationItem* item, I
#ifdef HAS_SCHEMA_4x3_rc1
Ifc4x3_rc1::IfcStyledItem* create_styled_item(Ifc4x3_rc1::IfcRepresentationItem* item, Ifc4x3_rc1::IfcPresentationStyleAssignment* style_assignment) {
- aggregate_of_instance::ptr style_assignments(new aggregate_of_instance);
+ Ifc4x3_rc1::IfcStyleAssignmentSelect::list::ptr style_assignments(new Ifc4x3_rc1::IfcStyleAssignmentSelect::list);
style_assignments->push(style_assignment);
return new Ifc4x3_rc1::IfcStyledItem(item, style_assignments, boost::none);
}
@@ -538,9 +538,9 @@ Ifc4x3_rc1::IfcStyledItem* create_styled_item(Ifc4x3_rc1::IfcRepresentationItem*
#ifdef HAS_SCHEMA_4x3_rc2
Ifc4x3_rc2::IfcStyledItem* create_styled_item(Ifc4x3_rc2::IfcRepresentationItem* item, Ifc4x3_rc2::IfcPresentationStyleAssignment* style_assignment) {
- aggregate_of_instance::ptr style_assignments(new aggregate_of_instance);
- style_assignments->push(style_assignment);
- return new Ifc4x3_rc2::IfcStyledItem(item, style_assignments, boost::none);
+ Ifc4x3_rc2::IfcStyleAssignmentSelect::list::ptr style_assignments(new Ifc4x3_rc2::IfcStyleAssignmentSelect::list);
+ style_assignments->push(style_assignment);
+ return new Ifc4x3_rc2::IfcStyledItem(item, style_assignments, boost::none);
}
#endif
diff --git a/src/ifcparse/aggregate_of_instance.h b/src/ifcparse/aggregate_of_instance.h
index db09a2bb44..c6bf8f5921 100644
--- a/src/ifcparse/aggregate_of_instance.h
+++ b/src/ifcparse/aggregate_of_instance.h
@@ -45,8 +45,11 @@ public:
template
typename U::list::ptr as() {
typename U::list::ptr r(new typename U::list);
- const bool all = !U::Class().as_entity();
- for (it i = begin(); i != end(); ++i) if (all || (*i)->declaration().is(U::Class())) r->push((U*)*i);
+ for (it i = begin(); i != end(); ++i) {
+ if ((*i)->as()) {
+ r->push((*i)->as());
+ }
+ }
return r;
}
void remove(IfcUtil::IfcBaseClass*);
@@ -67,7 +70,7 @@ public:
unsigned int size() const { return (unsigned int)ls.size(); }
aggregate_of_instance::ptr generalize() {
aggregate_of_instance::ptr r(new aggregate_of_instance());
- for (it i = begin(); i != end(); ++i) r->push(*i);
+ for (it i = begin(); i != end(); ++i) r->push((*i)->template as());
return r;
}
bool contains(T* t) const { return std::find(ls.begin(), ls.end(), t) != ls.end(); }
diff --git a/src/ifcpatch/ifcpatch/__init__.py b/src/ifcpatch/ifcpatch/__init__.py
index 3ad25ee8b3..549990e06a 100644
--- a/src/ifcpatch/ifcpatch/__init__.py
+++ b/src/ifcpatch/ifcpatch/__init__.py
@@ -18,9 +18,9 @@
# You should have received a copy of the GNU Lesser General Public License
# along with IfcPatch. If not, see .
+import os
import ifcopenshell
import logging
-import os
import typing
import inspect
import collections
@@ -95,9 +95,14 @@ def write(output, filepath):
:return: None
:rtype: None
"""
- if isinstance(output, str):
- with open(filepath, "w") as text_file:
- text_file.write(output)
+ if output is None:
+ return
+ elif isinstance(output, str):
+ if os.path.exists(output):
+ os.rename(output, filepath)
+ else:
+ with open(filepath, "w") as text_file:
+ text_file.write(output)
else:
output.write(filepath)
diff --git a/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py b/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py
new file mode 100644
index 0000000000..7f54de6df3
--- /dev/null
+++ b/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py
@@ -0,0 +1,485 @@
+import os
+import re
+import json
+import time
+import tempfile
+import itertools
+import numpy as np
+import multiprocessing
+import ifcopenshell
+import ifcopenshell.geom
+import ifcopenshell.util.unit
+import ifcopenshell.util.shape
+import ifcopenshell.util.schema
+import ifcopenshell.util.attribute
+import ifcopenshell.util.placement
+
+try:
+ import sqlite3
+except:
+ print("No SQLite support")
+
+try:
+ import mysql.connector
+except:
+ print("No MySQL support")
+
+
+class Patcher:
+ def __init__(
+ self,
+ src,
+ file,
+ logger,
+ sql_type: str = "sqlite",
+ host: str = "localhost",
+ username: str = "root",
+ password: str = "pass",
+ database: str = "test",
+ ):
+ """Convert an IFC-SPF model to SQLite or MySQL.
+
+ There are certain controls which are hardcoded in this recipe that you
+ may modify, including:
+
+ - full_schema: if True, will create tables for all IFC classes,
+ regardless if they are used or not in the dataset. If False, will
+ only create tables for classes in the dataset.
+ - is_strict: whether or not to enforce null or not null. If your
+ dataset might contain invalid data, set this to False.
+ - should_expand: if True, entities with attributes containing lists of
+ entities will be separated into multiple rows. This means the ifc_id
+ is no longer a unique primary key. If False, lists will be stored as
+ JSON.
+ - should_get_psets: if True, a separate psets table will be created to
+ make it easy to query properties. This is in addition to regular IFC
+ tables like IfcPropertySet.
+ - should_get_geometry: Whether or not to process and store explicit
+ geometry data as a blob in a separate geometry and shape table.
+ - should_skip_geometry_data: Whether or not to also create tables for
+ IfcRepresentation and IfcRepresentationItem classes. These tables are
+ unnecessary if you are not interested in geometry.
+
+ :param sql_type: Choose between "sqlite" or "mysql"
+ :type sql_type: str
+
+ Example:
+
+ .. code:: python
+
+ # Convert to SQLite
+ ifcpatch.execute({"input": model, "recipe": "Ifc2Sql", "arguments": ["sqlite"]})
+ """
+ self.src = src
+ self.file = file
+ self.logger = logger
+ self.sql_type = sql_type
+ self.host = host
+ self.username = username
+ self.password = password
+ self.database = database
+
+ def patch(self):
+ self.full_schema = True # Set true for ifcopenshell.sqlite
+ self.is_strict = False
+ self.should_expand = False # Set false for ifcopenshell.sqlite
+ self.should_get_inverses = True # Set true for ifcopenshell.sqlite
+ self.should_get_psets = True
+ self.should_get_geometry = True # Set true for ifcopenshell.sqlite
+ self.should_skip_geometry_data = False # Set false for ifcopenshell.sqlite
+
+ self.schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(self.file.schema)
+
+ if self.sql_type == "sqlite":
+ tmp = tempfile.NamedTemporaryFile(delete=False)
+ db_file = tmp.name
+ self.db = sqlite3.connect(db_file)
+ self.c = self.db.cursor()
+ self.file_patched = db_file
+ elif self.sql_type == "mysql":
+ self.db = mysql.connector.connect(
+ host=self.host, user=self.username, password=self.password, database=self.database
+ )
+ self.c = self.db.cursor()
+ self.file_patched = None
+
+ self.create_id_map()
+ self.create_metadata()
+
+ if self.should_get_psets:
+ self.create_pset_table()
+
+ if self.should_get_geometry:
+ self.create_geometry_table()
+ self.create_geometry()
+
+ if self.full_schema:
+ ifc_classes = [d.name() for d in self.schema.declarations() if str(d).startswith("", attribute):
+ if data_type not in ("list", "set", "select", "entity"):
+ return False
+ return True
+ return False
diff --git a/src/ifctester/README.md b/src/ifctester/README.md
index 336f9d8853..bf2612d7a7 100644
--- a/src/ifctester/README.md
+++ b/src/ifctester/README.md
@@ -21,7 +21,9 @@ property = ids.Property(
propertySet="Pset_WallCommon",
measure="IfcBoolean",
uri="https://identifier.buildingsmart.org/uri/.../prop/LoadBearing",
- instructions="Walls need to be load bearing.")
+ instructions="Walls need to be load bearing.",
+ minOccurs=1,
+ maxOccurs="unbounded")
my_spec.requirements.append(property)
my_ids.specifications.append(my_spec)
diff --git a/src/ifcwrap/IfcGeomWrapper.i b/src/ifcwrap/IfcGeomWrapper.i
index 8e568ce0ea..b2361767cb 100644
--- a/src/ifcwrap/IfcGeomWrapper.i
+++ b/src/ifcwrap/IfcGeomWrapper.i
@@ -241,6 +241,7 @@ struct ShapeRTTI : public boost::static_visitor
edges = property(edges)
material_ids = property(material_ids)
materials = property(materials)
+ item_ids = property(item_ids)
%}
};
@@ -635,6 +636,10 @@ struct ShapeRTTI : public boost::static_visitor
}
%}
+%ignore hlr_writer;
+%ignore hlr_calc;
+%ignore occt_join;
+%ignore prefiltered_hlr;
%ignore svgfill::svg_to_line_segments;
%ignore svgfill::line_segments_to_polygons;
diff --git a/src/serializers/HdfSerializer.cpp b/src/serializers/HdfSerializer.cpp
index 72569065bd..b8b5bcc99b 100644
--- a/src/serializers/HdfSerializer.cpp
+++ b/src/serializers/HdfSerializer.cpp
@@ -437,6 +437,7 @@ IfcGeom::Element* HdfSerializer::read(IfcParse::IfcFile& f, const std::string& g
auto normals = read_dataset(meshGroup, DATASET_NAME_NORMALS);
auto uvcoords = read_dataset(meshGroup, DATASET_NAME_UVCOORDS);
auto material_ids = read_dataset(meshGroup, DATASET_NAME_MATERIAL_IDS);
+ auto item_ids = read_dataset(meshGroup, DATASET_NAME_ITEM_IDS);
std::vector surface_styles;
@@ -471,7 +472,8 @@ IfcGeom::Element* HdfSerializer::read(IfcParse::IfcFile& f, const std::string& g
normals,
uvcoords,
material_ids,
- surface_style_ptrs
+ surface_style_ptrs,
+ item_ids
));
triangulation_cache_.insert({ representation_id_str, triangulation_geometry });
@@ -706,6 +708,7 @@ void HdfSerializer::write(const IfcGeom::TriangulationElement* o) {
write_dataset(meshGroup, DATASET_NAME_NORMALS, mesh.normals(), 2);
write_dataset(meshGroup, DATASET_NAME_UVCOORDS, mesh.uvs(), 2);
write_dataset(meshGroup, DATASET_NAME_MATERIAL_IDS, mesh.material_ids(), 1);
+ write_dataset(meshGroup, DATASET_NAME_ITEM_IDS, mesh.item_ids(), 1);
{
auto& ts = mesh.materials();
@@ -732,6 +735,7 @@ const H5std_string HdfSerializer::DATASET_NAME_NORMALS = "normals";
const H5std_string HdfSerializer::DATASET_NAME_INDICES = "indices";
const H5std_string HdfSerializer::DATASET_NAME_EDGES = "edges";
const H5std_string HdfSerializer::DATASET_NAME_MATERIAL_IDS = "material_ids";
+const H5std_string HdfSerializer::DATASET_NAME_ITEM_IDS = "item_ids";
const H5std_string HdfSerializer::DATASET_NAME_MATERIALS = "materials";
const H5std_string HdfSerializer::DATASET_NAME_OCCT = "brep";
const H5std_string HdfSerializer::DATASET_NAME_PLACEMENT = "placement";
diff --git a/src/serializers/HdfSerializer.h b/src/serializers/HdfSerializer.h
index 35d82b1aae..527dd383b8 100644
--- a/src/serializers/HdfSerializer.h
+++ b/src/serializers/HdfSerializer.h
@@ -46,6 +46,7 @@ private:
static const H5std_string DATASET_NAME_INDICES;
static const H5std_string DATASET_NAME_EDGES;
static const H5std_string DATASET_NAME_MATERIAL_IDS;
+ static const H5std_string DATASET_NAME_ITEM_IDS;
static const H5std_string DATASET_NAME_MATERIALS;
static const H5std_string DATASET_NAME_OCCT;
static const H5std_string DATASET_NAME_PLACEMENT;
diff --git a/src/serializers/SvgSerializer.cpp b/src/serializers/SvgSerializer.cpp
index cdeb383841..4ec57b5a67 100644
--- a/src/serializers/SvgSerializer.cpp
+++ b/src/serializers/SvgSerializer.cpp
@@ -713,31 +713,6 @@ void SvgSerializer::write(const IfcGeom::BRepElement* brep_obj) {
}
}
-namespace {
- class hlr_writer {
- const TopoDS_Shape& shape_;
-
- public:
- typedef void result_type;
-
- hlr_writer(const TopoDS_Shape& shape) : shape_(shape)
- {}
-
- void operator()(boost::blank&) const {
- throw std::runtime_error("");
- }
-
- void operator()(Handle(HLRBRep_Algo)& algo) const {
- algo->Add(shape_);
- }
-
- void operator()(Handle(HLRBRep_PolyAlgo)& algo) const {
- BRepMesh_IncrementalMesh(shape_, 0.10);
- algo->Load(shape_);
- }
- };
-}
-
namespace {
int infront_or_behind(const gp_Pln& pln, const gp_Pnt& p) {
auto d = (p.XYZ() - pln.Location().XYZ()).Dot(pln.Axis().Direction().XYZ());
@@ -1159,22 +1134,16 @@ void SvgSerializer::write(const geometry_data& data) {
if (is_floor_plan_) {
if (storey) {
- if (storey_hlr.find(storey) == storey_hlr.end()) {
- if (use_hlr_poly_) {
- storey_hlr[storey] = new HLRBRep_PolyAlgo;
- } else {
- storey_hlr[storey] = new HLRBRep_Algo;
- }
+ auto it = storey_hlr.find(storey);
+ if (it == storey_hlr.end()) {
+ it = storey_hlr.insert({ storey, hlr_t(use_prefiltering_, use_hlr_poly_, projection_plane) }).first;
}
- hlr_writer vis(*compound_to_hlr);
- boost::apply_visitor(vis, storey_hlr[storey]);
+ it->second.add(*compound_to_hlr);
} else {
Logger::Warning("Unable to invoke HLR due to absence of storey containment", data.product);
}
- }
- else {
- hlr_writer vis(*compound_to_hlr);
- boost::apply_visitor(vis, hlr);
+ } else if (hlr) {
+ hlr->add(*compound_to_hlr);
}
}
}
@@ -1332,7 +1301,8 @@ void SvgSerializer::write(const geometry_data& data) {
labels.push_back(ss.str() + "m");
for (auto lit = labels.begin(); lit != labels.end(); ++lit) {
- const auto& l = *lit;
+ auto l = *lit;
+ IfcUtil::escape_xml(l);
double dy = labels.begin() == lit
? 0.35 - (labels.size() - 1.) / 2.
: 1.0; // <- dy is relative to the previous text element, so
@@ -1500,7 +1470,8 @@ void SvgSerializer::write(const geometry_data& data) {
ycoords.push_back(path.add(anchor_pt->Y()));
path.add("\">");
for (auto lit = labels.begin(); lit != labels.end(); ++lit) {
- const auto& l = *lit;
+ auto l = *lit;
+ IfcUtil::escape_xml(l);
double dy = labels.begin() == lit
? 0.35 - (labels.size() - 1.) / 2.
: 1.0; // <- dy is relative to the previous text element, so
@@ -1617,7 +1588,8 @@ void SvgSerializer::write(const geometry_data& data) {
}
path.add(">");
for (auto lit = labels.begin(); lit != labels.end(); ++lit) {
- const auto& l = *lit;
+ auto l = *lit;
+ IfcUtil::escape_xml(l);
double dy = labels.begin() == lit
? 0.35 - (labels.size() - 1.) / 2.
: 1.0; // <- dy is relative to the previous text element, so
@@ -1706,81 +1678,8 @@ std::array, 3> SvgSerializer::resize() {
return m;
}
-namespace {
- template
- TopoDS_Compound occt_join(T t) {
- BRep_Builder B;
- TopoDS_Compound C;
- B.MakeCompound(C);
- if (!t.IsNull()) {
- TopoDS_Iterator it(t);
- for (; it.More(); it.Next()) {
- B.Add(C, it.Value());
- }
- }
- return C;
- }
-
- template
- TopoDS_Compound occt_join(T t, Ts... tss) {
- BRep_Builder B;
- TopoDS_Compound C;
- B.MakeCompound(C);
- if (!t.IsNull()) {
- TopoDS_Iterator it(t);
- for (; it.More(); it.Next()) {
- B.Add(C, it.Value());
- }
- }
- auto rest = occt_join(tss...);
- if (!rest.IsNull()) {
- TopoDS_Iterator it(rest);
- for (; it.More(); it.Next()) {
- B.Add(C, it.Value());
- }
- }
- return C;
- }
-
- class hlr_calc {
- private:
- const HLRAlgo_Projector& projector_;
-
- public:
- typedef TopoDS_Shape result_type;
-
- hlr_calc(const HLRAlgo_Projector& projector) : projector_(projector)
- {}
-
- TopoDS_Shape operator()(boost::blank&) const {
- throw std::runtime_error("");
- }
-
- TopoDS_Shape operator()(Handle(HLRBRep_Algo)& algo) {
- algo->Projector(projector_);
- algo->Update();
- algo->Hide();
- HLRBRep_HLRToShape hlr_shapes(algo);
- return occt_join(hlr_shapes.OutLineVCompound(), hlr_shapes.VCompound());
- }
-
- TopoDS_Shape operator()(Handle(HLRBRep_PolyAlgo)& algo) {
- algo->Projector(projector_);
- algo->Update();
- HLRBRep_PolyHLRToShape hlr_shapes;
- hlr_shapes.Update(algo);
- return occt_join(hlr_shapes.OutLineVCompound(), hlr_shapes.VCompound());
- }
- };
-}
-
void SvgSerializer::draw_hlr(const gp_Pln& pln, const drawing_key& drawing_name) {
- gp_Trsf trsf;
- trsf.SetTransformation(pln.Position());
- HLRAlgo_Projector projector(trsf, false, 1.);
-
- hlr_calc vis(projector);
- TopoDS_Shape hlr_compound_unmirrored = boost::apply_visitor(vis, drawing_name.first ? this->storey_hlr[drawing_name.first] : hlr);
+ TopoDS_Shape hlr_compound_unmirrored = (drawing_name.first ? this->storey_hlr.find(drawing_name.first)->second : *hlr).build();
if (!hlr_compound_unmirrored.IsNull()) {
// Compound 3D curves for mirroring to work
@@ -1943,7 +1842,8 @@ void SvgSerializer::addTextAnnotations(const drawing_key& k) {
std::vector labels{ desc };
for (auto lit = labels.begin(); lit != labels.end(); ++lit) {
- const auto& l = *lit;
+ auto l = *lit;
+ IfcUtil::escape_xml(l);
double dy = labels.begin() == lit
? 0.0 // align bottom
: 1.0; // <- dy is relative to the previous text element, so
@@ -2058,12 +1958,9 @@ void SvgSerializer::finalize() {
pln = §ion.plane;
}
- if (use_hlr) {
- if (use_hlr_poly_) {
- hlr = new HLRBRep_PolyAlgo;
- } else {
- hlr = new HLRBRep_Algo;
- }
+ // @todo do we have always have pln here?
+ if (use_hlr && pln) {
+ hlr = new hlr_t(use_prefiltering_, use_hlr_poly_, *pln);
}
section_data_ = std::vector{ sd };
@@ -2137,8 +2034,7 @@ void SvgSerializer::finalize() {
resetScale();
- // @todo does this probably call Nullify()
- hlr = boost::blank();
+ delete hlr;
}
}
diff --git a/src/serializers/SvgSerializer.h b/src/serializers/SvgSerializer.h
index b5cdc64d67..4c2cde130f 100644
--- a/src/serializers/SvgSerializer.h
+++ b/src/serializers/SvgSerializer.h
@@ -23,6 +23,7 @@
#define SVGSERIALIZER_H
#include "../ifcgeom_schema_agnostic/GeometrySerializer.h"
+#include "../ifcgeom_schema_agnostic/base_utils.h"
#include "../serializers/serializers_api.h"
#include "../serializers/util.h"
@@ -35,6 +36,11 @@
#include
#include
#include
+#include
+#include
+#include
+#include
+#include
#if OCC_VERSION_HEX >= 0x70300
#include
@@ -43,6 +49,7 @@
#include
#include
#include
+#include
typedef std::pair drawing_key;
@@ -134,7 +141,349 @@ typedef boost::variant<
boost::blank,
Handle(HLRBRep_Algo),
Handle(HLRBRep_PolyAlgo)
-> hlr_t;
+> hlr_brep_or_poly_t;
+
+namespace {
+ class hlr_writer {
+ const TopoDS_Shape& shape_;
+
+ public:
+ typedef void result_type;
+
+ hlr_writer(const TopoDS_Shape& shape) : shape_(shape)
+ {}
+
+ void operator()(boost::blank&) const {
+ throw std::runtime_error("");
+ }
+
+ void operator()(opencascade::handle& algo) const {
+ algo->Add(shape_);
+ }
+
+ void operator()(opencascade::handle& algo) const {
+ BRepMesh_IncrementalMesh(shape_, 0.10);
+ algo->Load(shape_);
+ }
+ };
+
+ template
+ TopoDS_Compound occt_join(T t) {
+ BRep_Builder B;
+ TopoDS_Compound C;
+ B.MakeCompound(C);
+ if (!t.IsNull()) {
+ TopoDS_Iterator it(t);
+ for (; it.More(); it.Next()) {
+ B.Add(C, it.Value());
+ }
+ }
+ return C;
+ }
+
+ template
+ TopoDS_Compound occt_join(T t, Ts... tss) {
+ BRep_Builder B;
+ TopoDS_Compound C;
+ B.MakeCompound(C);
+ if (!t.IsNull()) {
+ TopoDS_Iterator it(t);
+ for (; it.More(); it.Next()) {
+ B.Add(C, it.Value());
+ }
+ }
+ auto rest = occt_join(tss...);
+ if (!rest.IsNull()) {
+ TopoDS_Iterator it(rest);
+ for (; it.More(); it.Next()) {
+ B.Add(C, it.Value());
+ }
+ }
+ return C;
+ }
+
+ class hlr_calc {
+ private:
+ const HLRAlgo_Projector& projector_;
+
+ public:
+ typedef TopoDS_Shape result_type;
+
+ hlr_calc(const HLRAlgo_Projector& projector) : projector_(projector)
+ {}
+
+ TopoDS_Shape operator()(boost::blank&) const {
+ throw std::runtime_error("");
+ }
+
+ TopoDS_Shape operator()(opencascade::handle& algo) {
+ algo->Projector(projector_);
+ algo->Update();
+ algo->Hide();
+ HLRBRep_HLRToShape hlr_shapes(algo);
+ return occt_join(hlr_shapes.OutLineVCompound(), hlr_shapes.VCompound());
+ }
+
+ TopoDS_Shape operator()(opencascade::handle& algo) {
+ algo->Projector(projector_);
+ algo->Update();
+ HLRBRep_PolyHLRToShape hlr_shapes;
+ hlr_shapes.Update(algo);
+ return occt_join(hlr_shapes.OutLineVCompound(), hlr_shapes.VCompound());
+ }
+ };
+
+ class prefiltered_hlr {
+
+ class face_info {
+ private:
+ gp_XYZ dxyz, xdir, ydir;
+
+ public:
+ std::list::const_iterator item;
+ TopoDS_Face face;
+ bool is_convex;
+ // @note copying the BRepTopAdaptor_FClass2d didn't work so it's a pointer
+ BRepTopAdaptor_FClass2d* fclass;
+
+ face_info(std::list::const_iterator it, const TopoDS_Face& fa)
+ : item(it)
+ , face(fa)
+ , fclass(nullptr)
+ {
+ TopExp_Explorer exp(face, TopAbs_WIRE);
+ is_convex = exp.More() && IfcGeom::util::is_convex(TopoDS::Wire(exp.Current()), 1.e-5) && ([&exp]() {exp.Next(); return true; })() && !exp.More();
+
+ auto surf = BRep_Tool::Surface(fa);
+ if (surf->DynamicType() != STANDARD_TYPE(Geom_Plane)) {
+ throw std::runtime_error("Not implemented");
+ }
+
+ auto pln = Handle(Geom_Plane)::DownCast(surf);
+
+ dxyz = pln->Position().Location().XYZ();
+ xdir = pln->Position().XDirection().XYZ();
+ ydir = pln->Position().YDirection().XYZ();
+ }
+
+ ~face_info() {
+ delete fclass;
+ }
+
+ void project(const gp_Pnt& xyz, gp_Pnt2d& uv) {
+ const gp_Vec d = xyz.XYZ() - dxyz;
+ uv.SetX(d.Dot(xdir));
+ uv.SetY(d.Dot(ydir));
+ }
+
+ void interp(const gp_Pnt2d& a, const gp_Pnt2d& b, double d, gp_Pnt2d& out) {
+ out.SetCoord(a.X() + (b.X() - a.X()) * d, a.Y() + (b.Y() - a.Y()) * d);
+ }
+
+ bool contains(const gp_Pnt& bottomleft, const gp_Pnt& topright) {
+ gp_Pnt2d a, b;
+ project(bottomleft, a);
+ project(topright, b);
+ return contains(a, b);
+ }
+
+ bool contains(const gp_Pnt2d& bottomleft, const gp_Pnt2d& topright) {
+ if (!fclass) {
+ fclass = new BRepTopAdaptor_FClass2d(face, 1.e-5);
+ }
+ // @todo unify with the 2d boolean algo
+ gp_Pnt2d bottomright(topright.X(), bottomleft.Y());
+ gp_Pnt2d topleft(bottomleft.X(), topright.Y());
+ std::array loop{ {
+ &bottomleft,
+ &bottomright,
+ &topright,
+ &topleft
+ } };
+
+ if (is_convex) {
+ for (int i = 0; i < 4; ++i) {
+ if (fclass->Perform(*loop[i]) == TopAbs_OUT) {
+ return false;
+ }
+ }
+ } else {
+ gp_Pnt2d tmp;
+ for (int i = 0; i < 4; ++i) {
+ // @todo proper edge intersection
+ for (int j = 0; j < 16; ++j) {
+ const gp_Pnt2d& a = *loop[i];
+ const gp_Pnt2d& b = *loop[(i + 1) % 4];
+ interp(a, b, j / 16.0, tmp);
+ if (fclass->Perform(tmp) == TopAbs_OUT) {
+ return false;
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+ };
+
+ hlr_brep_or_poly_t engine_;
+ bool use_prefiltering_;
+ bool use_hlr_poly_;
+ gp_Ax1 view_direction_;
+ HLRAlgo_Projector projector_;
+
+ std::multimap large_ortho_faces_;
+ std::list items_;
+
+ public:
+
+ prefiltered_hlr(bool use_prefiltering, bool use_hlr_poly, const gp_Pln& view_direction)
+ : use_prefiltering_(use_prefiltering)
+ , use_hlr_poly_(use_hlr_poly)
+ // @nb negative z in accordance with occt projector convention (and opengl)
+ , view_direction_(view_direction.Axis())
+ {
+ if (use_hlr_poly_) {
+ engine_ = new HLRBRep_PolyAlgo;
+ } else {
+ engine_ = new HLRBRep_Algo;
+ }
+
+ gp_Trsf trsf;
+ trsf.SetTransformation(view_direction.Position());
+ projector_ = HLRAlgo_Projector(trsf, false, 1.);
+ }
+
+ bool is_obscured_(std::list::const_iterator sit) {
+ const TopoDS_Shape& s = *sit;
+
+ double min_d = std::numeric_limits::infinity();
+
+ TopExp_Explorer exp(s, TopAbs_VERTEX);
+ for (; exp.More(); exp.Next()) {
+ const auto& v = TopoDS::Vertex(exp.Current());
+ auto pnt = BRep_Tool::Pnt(v);
+ auto d = -(pnt.XYZ() - view_direction_.Location().XYZ()).Dot(view_direction_.Direction().XYZ());
+ if (d < min_d) {
+ min_d = d;
+ }
+ }
+
+ Bnd_Box box;
+ BRepBndLib::AddClose(s, box);
+
+ auto lower = large_ortho_faces_.lower_bound(0.);
+ auto upper = large_ortho_faces_.upper_bound(min_d);
+
+ for (auto it = lower; it != upper; ++it) {
+ if (it->second.item == sit) {
+ continue;
+ }
+
+ if (it->second.contains(box.CornerMin(), box.CornerMax())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ void add(const TopoDS_Shape& s) {
+ if (!use_prefiltering_) {
+ items_.insert(items_.end(), s);
+ }
+
+ TopoDS_Compound C;
+ BRep_Builder BB;
+ BB.MakeCompound(C);
+
+ gp_Pnt P;
+ gp_Vec V;
+ gp_Dir D;
+
+ if (IfcGeom::util::is_manifold(s)) {
+ size_t n_faces_included = 0, n_total = 0;
+ {
+ TopExp_Explorer exp(s, TopAbs_FACE);
+ for (; exp.More(); exp.Next(), n_total++) {
+ const auto& face = TopoDS::Face(exp.Current());
+ if (BRep_Tool::Surface(face)->DynamicType() == STANDARD_TYPE(Geom_Plane)) {
+ BRepGProp_Face prop(face);
+
+ prop.Normal(0., 0., P, V);
+ if (V.SquareMagnitude() > 1.e-9) {
+ D = V;
+ // keep only front-facing
+ if (D.Dot(view_direction_.Direction()) > 1.e-3) {
+ BB.Add(C, face);
+ n_faces_included++;
+ }
+ }
+ } else {
+ BB.Add(C, face);
+ n_faces_included++;
+ }
+ }
+ }
+
+ Logger::Notice("Included " + std::to_string(n_faces_included) + " faces out of " + std::to_string(n_total) + " after prefiltering");
+
+ auto it = items_.insert(items_.end(), C);
+
+ {
+ TopExp_Explorer exp(C, TopAbs_FACE);
+ for (; exp.More(); exp.Next()) {
+ const auto& face = TopoDS::Face(exp.Current());
+ if (BRep_Tool::Surface(face)->DynamicType() == STANDARD_TYPE(Geom_Plane)) {
+
+ // find large faces orthogonal to view dir
+ BRepGProp_Face prop(face);
+ prop.Normal(0., 0., P, V);
+ D = V;
+
+ if (D.Dot(view_direction_.Direction()) > (1. - 1.e-3)) {
+ if (IfcGeom::util::face_area(face) > 2.) {
+ // arbitrary vertex, is ok because orthogonal to view dir
+ TopExp_Explorer expv(face, TopAbs_VERTEX);
+ if (expv.More()) {
+ const auto& v = TopoDS::Vertex(expv.Current());
+ auto pnt = BRep_Tool::Pnt(v);
+
+ auto d = -(pnt.XYZ() - view_direction_.Location().XYZ()).Dot(view_direction_.Direction().XYZ());
+
+ if (d > 1.e-5) {
+ large_ortho_faces_.insert({ d, face_info(it, face) });
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ } else {
+ items_.insert(items_.end(), s);
+ }
+ }
+
+ TopoDS_Shape build() {
+ size_t n_included = 0;
+ for (auto it = items_.begin(); it != items_.end(); ++it) {
+ if (!use_prefiltering_ || !is_obscured_(it)) {
+ hlr_writer vis(*it);
+ boost::apply_visitor(vis, engine_);
+ n_included++;
+ }
+ }
+ if (use_prefiltering_) {
+ Logger::Notice("Included " + std::to_string(n_included) + " elements out of " + std::to_string(items_.size()) + " after prefiltering");
+ }
+ hlr_calc vis(projector_);
+ return boost::apply_visitor(vis, engine_);
+ }
+ };
+}
+
+typedef prefiltered_hlr hlr_t;
class SERIALIZERS_API SvgSerializer : public WriteOnlyGeometrySerializer {
public:
@@ -162,7 +511,7 @@ protected:
storey_height_display_types storey_height_display_;
bool draw_door_arcs_, is_floor_plan_;
bool auto_section_, auto_elevation_;
- bool use_namespace_, use_hlr_poly_, always_project_, polygonal_;
+ bool use_namespace_, use_hlr_poly_, use_prefiltering_, always_project_, polygonal_;
bool emit_building_storeys_;
bool no_css_;
@@ -181,7 +530,7 @@ protected:
std::list element_buffer_;
- hlr_t hlr;
+ hlr_t* hlr;
std::string namespace_prefix_;
@@ -211,6 +560,7 @@ public:
, auto_elevation_(false)
, use_namespace_(false)
, use_hlr_poly_(false)
+ , use_prefiltering_(false)
, always_project_(false)
, polygonal_(false)
, emit_building_storeys_(true)
@@ -221,6 +571,7 @@ public:
, xcoords_begin(0)
, ycoords_begin(0)
, radii_begin(0)
+ , hlr(nullptr)
, namespace_prefix_("data-")
, subtraction_settings_(ON_SLABS_AT_FLOORPLANS)
{}
@@ -286,6 +637,14 @@ public:
use_hlr_poly_ = b;
}
+ void setUsePrefiltering(bool b) {
+ use_prefiltering_ = b;
+ }
+
+ bool getUsePrefiltering() const {
+ return use_prefiltering_;
+ }
+
void setPolygonal(bool b) {
polygonal_ = b;
}
diff --git a/src/serializers/USDSerializer.cpp b/src/serializers/USDSerializer.cpp
new file mode 100644
index 0000000000..8f02a9eaec
--- /dev/null
+++ b/src/serializers/USDSerializer.cpp
@@ -0,0 +1,192 @@
+/********************************************************************************
+ * *
+ * 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_USD
+
+#include "USDSerializer.h"
+
+#include "pxr/base/gf/vec3f.h"
+#include "pxr/usd/usdGeom/xform.h"
+#include "pxr/usd/usdGeom/scope.h"
+#include "pxr/usd/usdGeom/tokens.h"
+#include "pxr/usd/usdGeom/metrics.h"
+#include "pxr/usd/usdLux/distantLight.h"
+#include "pxr/usd/usdShade/shader.h"
+#include "pxr/usd/usdShade/materialBindingAPI.h"
+
+#include
+
+USDSerializer::USDSerializer(const std::string& out_filename, const SerializerSettings& settings):
+ WriteOnlyGeometrySerializer(settings),
+ filename_(out_filename)
+{
+ std::size_t found = filename_.find_last_of("/\\");
+ parent_path_ = filename_.substr(0, found != std::string::npos ? found + 1 : 0);
+ stage_ = pxr::UsdStage::CreateNew(filename_);
+
+ if(!stage_)
+ throw std::runtime_error("Could not create USD stage");
+
+ if(!settings.get(SerializerSettings::USE_Y_UP))
+ pxr::UsdGeomSetStageUpAxis(stage_, pxr::UsdGeomTokens->z);
+
+ pxr::UsdGeomSetStageMetersPerUnit(stage_, 1.0f);
+
+ auto world = pxr::UsdGeomXform::Define(stage_, pxr::SdfPath("/World"));
+ stage_->SetDefaultPrim(world.GetPrim());
+ pxr::UsdGeomScope::Define(stage_, pxr::SdfPath("/Looks"));
+ auto light = pxr::UsdLuxDistantLight::Define(stage_, pxr::SdfPath("/defaultLight"));
+ light.CreateIntensityAttr().Set(1000.0f);
+ light.CreateColorAttr().Set(pxr::GfVec3f(1.0f, 1.0f, 1.0f));
+ ready_ = true;
+}
+
+USDSerializer::~USDSerializer() {
+
+}
+
+std::vector USDSerializer::createMaterials(const std::vector& styles)
+{
+ if(styles.empty())
+ throw std::runtime_error("No styles to create materials from");
+
+ std::vector materials {};
+
+ for(auto style : styles) {
+ std::string material_path(style.original_name());
+ usd_utils::toPath(material_path);
+
+ if(materials_.find(material_path) != materials_.end()) {
+ materials.push_back(materials_[material_path]);
+ continue;
+ }
+
+ const std::string path("/Looks/" + material_path);
+ auto material = pxr::UsdShadeMaterial::Define(stage_, pxr::SdfPath(path));
+ auto shader = pxr::UsdShadeShader::Define(stage_, pxr::SdfPath(path + "/Shader"));
+ shader.CreateIdAttr().Set(pxr::TfToken("UsdPreviewSurface"));
+
+ float rgba[4] { 0.18f, 0.18f, 0.18f, 1.0f };
+ if (style.hasDiffuse())
+ for (int i = 0; i < 3; ++i)
+ rgba[i] = static_cast(style.diffuse()[i]);
+ shader.CreateInput(pxr::TfToken("diffuseColor"), pxr::SdfValueTypeNames->Color3f).Set(pxr::GfVec3f(rgba[0], rgba[1], rgba[2]));
+
+ if(style.hasTransparency())
+ rgba[3] -= style.transparency();
+ shader.CreateInput(pxr::TfToken("opacity"), pxr::SdfValueTypeNames->Float).Set(rgba[3]);
+
+ if(style.hasSpecular()) {
+ for (int i = 0; i < 3; ++i)
+ rgba[i] = static_cast(style.specular()[i]);
+ shader.CreateInput(pxr::TfToken("useSpecularWorkflow"), pxr::SdfValueTypeNames->Int).Set(1);
+ } else {
+ shader.CreateInput(pxr::TfToken("useSpecularWorkflow"), pxr::SdfValueTypeNames->Int).Set(0);
+ }
+ shader.CreateInput(pxr::TfToken("specularColor"), pxr::SdfValueTypeNames->Color3f).Set(pxr::GfVec3f(rgba[0], rgba[1], rgba[2]));
+
+ material.CreateSurfaceOutput().ConnectToSource(shader.ConnectableAPI(), pxr::TfToken("surface"));
+ materials.push_back(material);
+ materials_[material_path] = material;
+ }
+
+ return materials;
+}
+
+pxr::GfVec3f USDSerializer::rotation_degrees_from_matrix(const std::vector& matrix) const {
+ const double epsilon = 1e-6;
+ double angleX, angleY, angleZ;
+
+ angleX = atan2(-matrix[5], matrix[8]);
+ if (std::abs(std::abs(matrix[5]) - 1.0) < epsilon) {
+ angleZ = 0.0;
+ angleY = atan2(matrix[6], matrix[0]);
+ } else {
+ angleZ = atan2(matrix[1], matrix[4]);
+ angleY = atan2(matrix[2], matrix[8]);
+ }
+
+ return pxr::GfVec3f(static_cast(angleX * 180.0 / M_PI),
+ static_cast(angleY * 180.0 / M_PI),
+ static_cast(angleZ * 180.0 / M_PI));
+}
+
+void USDSerializer::writeHeader() {
+ stage_->GetRootLayer()->SetComment("File generated by IfcOpenShell " + std::string(IFCOPENSHELL_VERSION));
+}
+
+void USDSerializer::write(const IfcGeom::TriangulationElement* o) {
+ pxr::UsdGeomMesh usd_mesh;
+ const IfcGeom::Representation::Triangulation& mesh = o->geometry();
+ const auto verts = mesh.verts();
+ const auto faces = mesh.faces();
+ const auto material_ids = mesh.material_ids();
+ const std::vector& m = o->transformation().matrix().data();
+
+ if (material_ids.empty() || verts.empty() || faces.empty())
+ return;
+
+ std::string name = o->name();
+ const std::string type = o->type();
+ const std::string id = std::to_string(o->id());
+ if(name.empty()) {
+ name = type + "_UnNamed_" + id;
+ } else {
+ name = type + "_" + usd_utils::toPath(name) + "_" + id;
+ }
+ usd_mesh = pxr::UsdGeomMesh::Define(stage_, pxr::SdfPath("/World/" + name));
+ pxr::VtVec3fArray points;
+ for(std::size_t i = 0; i < verts.size(); i+=3) {
+ points.push_back(pxr::GfVec3f(static_cast(verts[i]),
+ static_cast(verts[i+1]),
+ static_cast(verts[i+2])));
+ }
+ usd_mesh.CreatePointsAttr().Set(points);
+ usd_mesh.CreateFaceVertexIndicesAttr().Set(usd_utils::toVtArray(faces));
+ usd_mesh.CreateFaceVertexCountsAttr().Set(pxr::VtArray((int) faces.size() / 3, 3));
+
+ usd_mesh.AddTranslateOp().Set(pxr::GfVec3d(m[9], m[10], m[11]));
+ usd_mesh.AddRotateXYZOp().Set(rotation_degrees_from_matrix(m));
+
+ pxr::VtVec3fArray normals;
+ for (std::vector::const_iterator it = mesh.normals().begin(); it != mesh.normals().end();)
+ normals.push_back(pxr::GfVec3f(static_cast(*(it++)), static_cast(*(it++)), static_cast(*(it++))));
+ usd_mesh.CreateNormalsAttr().Set(normals);
+
+ auto materials = createMaterials(mesh.materials());
+ pxr::UsdShadeMaterialBindingAPI material_api(usd_mesh);
+ if(materials.size() > 1) {
+ std::vector> subsets(materials.size());
+ for(int i = 0; i < material_ids.size(); ++i)
+ subsets[material_ids[i]].push_back(i);
+
+ for(std::size_t i = 0; i < subsets.size(); ++i){
+ auto subset = material_api.CreateMaterialBindSubset(pxr::TfToken("subset_" + std::to_string(i)), subsets[i]);
+ pxr::UsdShadeMaterialBindingAPI(subset).Bind(materials[i]);
+ }
+ } else {
+ material_api.Bind(materials[0]);
+ }
+}
+
+void USDSerializer::finalize() {
+ stage_->Save();
+}
+
+#endif // WITH_USD
\ No newline at end of file
diff --git a/src/serializers/USDSerializer.h b/src/serializers/USDSerializer.h
new file mode 100644
index 0000000000..37b04326ee
--- /dev/null
+++ b/src/serializers/USDSerializer.h
@@ -0,0 +1,87 @@
+/********************************************************************************
+ * *
+ * 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 USDSERIALIZER_H
+#define USDSERIALIZER_H
+
+#ifdef WITH_USD
+
+#include "../serializers/serializers_api.h"
+#include "../ifcgeom_schema_agnostic/GeometrySerializer.h"
+#include "../ifcparse/utils.h"
+
+// undefine opencascade Handle macro, because it conflicts with USD
+#undef Handle
+
+#include "pxr/pxr.h"
+#include "pxr/usd/usd/stage.h"
+#include "pxr/base/vt/array.h"
+#include "pxr/usd/usdGeom/mesh.h"
+#include "pxr/usd/usdShade/material.h"
+
+#include
+#include
+#include
+#include