From f1fe73d1909a2448a004a88362a1a532d0d4f7c3 Mon Sep 17 00:00:00 2001 From: sanine Date: Sun, 12 Feb 2023 23:53:22 -0600 Subject: switch to tinyobj and nanovg from assimp and cairo --- libs/assimp/code/AssetLib/IFC/IFCBoolean.cpp | 765 --- libs/assimp/code/AssetLib/IFC/IFCCurve.cpp | 618 -- libs/assimp/code/AssetLib/IFC/IFCGeometry.cpp | 932 --- libs/assimp/code/AssetLib/IFC/IFCLoader.cpp | 931 --- libs/assimp/code/AssetLib/IFC/IFCLoader.h | 116 - libs/assimp/code/AssetLib/IFC/IFCMaterial.cpp | 202 - libs/assimp/code/AssetLib/IFC/IFCOpenings.cpp | 1955 ------ libs/assimp/code/AssetLib/IFC/IFCProfile.cpp | 190 - .../assimp/code/AssetLib/IFC/IFCReaderGen1_2x3.cpp | 3177 ---------- .../assimp/code/AssetLib/IFC/IFCReaderGen2_2x3.cpp | 1927 ------ libs/assimp/code/AssetLib/IFC/IFCReaderGen_2x3.h | 4380 -------------- libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.cpp | 6207 -------------------- libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.h | 5452 ----------------- libs/assimp/code/AssetLib/IFC/IFCUtil.cpp | 701 --- libs/assimp/code/AssetLib/IFC/IFCUtil.h | 411 -- 15 files changed, 27964 deletions(-) delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCBoolean.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCCurve.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCGeometry.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCLoader.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCLoader.h delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCMaterial.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCOpenings.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCProfile.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCReaderGen1_2x3.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCReaderGen2_2x3.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCReaderGen_2x3.h delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.h delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCUtil.cpp delete mode 100644 libs/assimp/code/AssetLib/IFC/IFCUtil.h (limited to 'libs/assimp/code/AssetLib/IFC') diff --git a/libs/assimp/code/AssetLib/IFC/IFCBoolean.cpp b/libs/assimp/code/AssetLib/IFC/IFCBoolean.cpp deleted file mode 100644 index 36912a7..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCBoolean.cpp +++ /dev/null @@ -1,765 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFCBoolean.cpp - * @brief Implements a subset of Ifc boolean operations - */ - -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER - -#include "AssetLib/IFC/IFCUtil.h" -#include "Common/PolyTools.h" -#include "PostProcessing/ProcessHelper.h" - - -#include -#include - -namespace Assimp { -namespace IFC { - -// ------------------------------------------------------------------------------------------------ -// Calculates intersection between line segment and plane. To catch corner cases, specify which side you prefer. -// The function then generates a hit only if the end is beyond a certain margin in that direction, filtering out -// "very close to plane" ghost hits as long as start and end stay directly on or within the given plane side. -bool IntersectSegmentPlane(const IfcVector3 &p, const IfcVector3 &n, const IfcVector3 &e0, - const IfcVector3 &e1, bool assumeStartOnWhiteSide, IfcVector3 &out) { - const IfcVector3 pdelta = e0 - p, seg = e1 - e0; - const IfcFloat dotOne = n * seg, dotTwo = -(n * pdelta); - - // if segment ends on plane, do not report a hit. We stay on that side until a following segment starting at this - // point leaves the plane through the other side - if (std::abs(dotOne + dotTwo) < ai_epsilon) - return false; - - // if segment starts on the plane, report a hit only if the end lies on the *other* side - if (std::abs(dotTwo) < ai_epsilon) { - if ((assumeStartOnWhiteSide && dotOne + dotTwo < ai_epsilon) || (!assumeStartOnWhiteSide && dotOne + dotTwo > -ai_epsilon)) { - out = e0; - return true; - } else { - return false; - } - } - - // ignore if segment is parallel to plane and far away from it on either side - // Warning: if there's a few thousand of such segments which slowly accumulate beyond the epsilon, no hit would be registered - if (std::abs(dotOne) < ai_epsilon) - return false; - - // t must be in [0..1] if the intersection point is within the given segment - const IfcFloat t = dotTwo / dotOne; - if (t > 1.0 || t < 0.0) - return false; - - out = e0 + t * seg; - return true; -} - -// ------------------------------------------------------------------------------------------------ -void FilterPolygon(std::vector &resultpoly) { - if (resultpoly.size() < 3) { - resultpoly.clear(); - return; - } - - IfcVector3 vmin, vmax; - ArrayBounds(resultpoly.data(), static_cast(resultpoly.size()), vmin, vmax); - - // filter our IfcFloat points - those may happen if a point lies - // directly on the intersection line or directly on the clipping plane - const IfcFloat epsilon = (vmax - vmin).SquareLength() / 1e6f; - FuzzyVectorCompare fz(epsilon); - std::vector::iterator e = std::unique(resultpoly.begin(), resultpoly.end(), fz); - - if (e != resultpoly.end()) - resultpoly.erase(e, resultpoly.end()); - - if (!resultpoly.empty() && fz(resultpoly.front(), resultpoly.back())) - resultpoly.pop_back(); -} - -// ------------------------------------------------------------------------------------------------ -void WritePolygon(std::vector &resultpoly, TempMesh &result) { - FilterPolygon(resultpoly); - - if (resultpoly.size() > 2) { - result.mVerts.insert(result.mVerts.end(), resultpoly.begin(), resultpoly.end()); - result.mVertcnt.push_back(static_cast(resultpoly.size())); - } -} - -// ------------------------------------------------------------------------------------------------ -void ProcessBooleanHalfSpaceDifference(const Schema_2x3::IfcHalfSpaceSolid *hs, TempMesh &result, - const TempMesh &first_operand, - ConversionData & /*conv*/) { - ai_assert(hs != nullptr); - - const Schema_2x3::IfcPlane *const plane = hs->BaseSurface->ToPtr(); - if (!plane) { - IFCImporter::LogError("expected IfcPlane as base surface for the IfcHalfSpaceSolid"); - return; - } - - // extract plane base position vector and normal vector - IfcVector3 p, n(0.f, 0.f, 1.f); - if (plane->Position->Axis) { - ConvertDirection(n, plane->Position->Axis.Get()); - } - ConvertCartesianPoint(p, plane->Position->Location); - - if (!IsTrue(hs->AgreementFlag)) { - n *= -1.f; - } - - // clip the current contents of `meshout` against the plane we obtained from the second operand - const std::vector &in = first_operand.mVerts; - std::vector &outvert = result.mVerts; - - std::vector::const_iterator begin = first_operand.mVertcnt.begin(), - end = first_operand.mVertcnt.end(), iit; - - outvert.reserve(in.size()); - result.mVertcnt.reserve(first_operand.mVertcnt.size()); - - unsigned int vidx = 0; - for (iit = begin; iit != end; vidx += *iit++) { - - unsigned int newcount = 0; - bool isAtWhiteSide = (in[vidx] - p) * n > -ai_epsilon; - for (unsigned int i = 0; i < *iit; ++i) { - const IfcVector3 &e0 = in[vidx + i], e1 = in[vidx + (i + 1) % *iit]; - - // does the next segment intersect the plane? - IfcVector3 isectpos; - if (IntersectSegmentPlane(p, n, e0, e1, isAtWhiteSide, isectpos)) { - if (isAtWhiteSide) { - // e0 is on the right side, so keep it - outvert.push_back(e0); - outvert.push_back(isectpos); - newcount += 2; - } else { - // e0 is on the wrong side, so drop it and keep e1 instead - outvert.push_back(isectpos); - ++newcount; - } - isAtWhiteSide = !isAtWhiteSide; - } else { - if (isAtWhiteSide) { - outvert.push_back(e0); - ++newcount; - } - } - } - - if (!newcount) { - continue; - } - - IfcVector3 vmin, vmax; - ArrayBounds(&*(outvert.end() - newcount), newcount, vmin, vmax); - - // filter our IfcFloat points - those may happen if a point lies - // directly on the intersection line. However, due to IfcFloat - // precision a bitwise comparison is not feasible to detect - // this case. - const IfcFloat epsilon = (vmax - vmin).SquareLength() / 1e6f; - FuzzyVectorCompare fz(epsilon); - - std::vector::iterator e = std::unique(outvert.end() - newcount, outvert.end(), fz); - - if (e != outvert.end()) { - newcount -= static_cast(std::distance(e, outvert.end())); - outvert.erase(e, outvert.end()); - } - if (fz(*(outvert.end() - newcount), outvert.back())) { - outvert.pop_back(); - --newcount; - } - if (newcount > 2) { - result.mVertcnt.push_back(newcount); - } else - while (newcount-- > 0) { - result.mVerts.pop_back(); - } - } - IFCImporter::LogVerboseDebug("generating CSG geometry by plane clipping (IfcBooleanClippingResult)"); -} - -// ------------------------------------------------------------------------------------------------ -// Check if e0-e1 intersects a sub-segment of the given boundary line. -// note: this functions works on 3D vectors, but performs its intersection checks solely in xy. -// New version takes the supposed inside/outside state as a parameter and treats corner cases as if -// the line stays on that side. This should make corner cases more stable. -// Two million assumptions! Boundary should have all z at 0.0, will be treated as closed, should not have -// segments with length <1e-6, self-intersecting might break the corner case handling... just don't go there, ok? -bool IntersectsBoundaryProfile(const IfcVector3 &e0, const IfcVector3 &e1, const std::vector &boundary, - const bool isStartAssumedInside, std::vector> &intersect_results, - const bool halfOpen = false) { - ai_assert(intersect_results.empty()); - - // determine winding order - necessary to detect segments going "inwards" or "outwards" from a point directly on the border - // positive sum of angles means clockwise order when looking down the -Z axis - IfcFloat windingOrder = 0.0; - for (size_t i = 0, bcount = boundary.size(); i < bcount; ++i) { - IfcVector3 b01 = boundary[(i + 1) % bcount] - boundary[i]; - IfcVector3 b12 = boundary[(i + 2) % bcount] - boundary[(i + 1) % bcount]; - IfcVector3 b1_side = IfcVector3(b01.y, -b01.x, 0.0); // rotated 90° clockwise in Z plane - // Warning: rough estimate only. A concave poly with lots of small segments each featuring a small counter rotation - // could fool the accumulation. Correct implementation would be sum( acos( b01 * b2) * sign( b12 * b1_side)) - windingOrder += (b1_side.x * b12.x + b1_side.y * b12.y); - } - windingOrder = windingOrder > 0.0 ? 1.0 : -1.0; - - const IfcVector3 e = e1 - e0; - - for (size_t i = 0, bcount = boundary.size(); i < bcount; ++i) { - // boundary segment i: b0-b1 - const IfcVector3 &b0 = boundary[i]; - const IfcVector3 &b1 = boundary[(i + 1) % bcount]; - IfcVector3 b = b1 - b0; - - // segment-segment intersection - // solve b0 + b*s = e0 + e*t for (s,t) - const IfcFloat det = (-b.x * e.y + e.x * b.y); - if (std::abs(det) < ai_epsilon) { - // no solutions (parallel lines) - continue; - } - IfcFloat b_sqlen_inv = 1.0 / b.SquareLength(); - - const IfcFloat x = b0.x - e0.x; - const IfcFloat y = b0.y - e0.y; - const IfcFloat s = (x * e.y - e.x * y) / det; // scale along boundary edge - const IfcFloat t = (x * b.y - b.x * y) / det; // scale along given segment - const IfcVector3 p = e0 + e * t; -#ifdef ASSIMP_BUILD_DEBUG - const IfcVector3 check = b0 + b * s - p; - ai_assert((IfcVector2(check.x, check.y)).SquareLength() < 1e-5); -#endif - - // also calculate the distance of e0 and e1 to the segment. We need to detect the "starts directly on segment" - // and "ends directly at segment" cases - bool startsAtSegment, endsAtSegment; - { - // calculate closest point to each end on the segment, clamp that point to the segment's length, then check - // distance to that point. This approach is like testing if e0 is inside a capped cylinder. - IfcFloat et0 = (b.x * (e0.x - b0.x) + b.y * (e0.y - b0.y)) * b_sqlen_inv; - IfcVector3 closestPosToE0OnBoundary = b0 + std::max(IfcFloat(0.0), std::min(IfcFloat(1.0), et0)) * b; - startsAtSegment = (closestPosToE0OnBoundary - IfcVector3(e0.x, e0.y, 0.0)).SquareLength() < 1e-12; - IfcFloat et1 = (b.x * (e1.x - b0.x) + b.y * (e1.y - b0.y)) * b_sqlen_inv; - IfcVector3 closestPosToE1OnBoundary = b0 + std::max(IfcFloat(0.0), std::min(IfcFloat(1.0), et1)) * b; - endsAtSegment = (closestPosToE1OnBoundary - IfcVector3(e1.x, e1.y, 0.0)).SquareLength() < 1e-12; - } - - // Line segment ends at boundary -> ignore any hit, it will be handled by possibly following segments - if (endsAtSegment && !halfOpen) - continue; - - // Line segment starts at boundary -> generate a hit only if following that line would change the INSIDE/OUTSIDE - // state. This should catch the case where a connected set of segments has a point directly on the boundary, - // one segment not hitting it because it ends there and the next segment not hitting it because it starts there - // Should NOT generate a hit if the segment only touches the boundary but turns around and stays inside. - if (startsAtSegment) { - IfcVector3 inside_dir = IfcVector3(b.y, -b.x, 0.0) * windingOrder; - bool isGoingInside = (inside_dir * e) > 0.0; - if (isGoingInside == isStartAssumedInside) - continue; - - // only insert the point into the list if it is sufficiently far away from the previous intersection point. - // This way, we avoid duplicate detection if the intersection is directly on the vertex between two segments. - if (!intersect_results.empty() && intersect_results.back().first == i - 1) { - const IfcVector3 diff = intersect_results.back().second - e0; - if (IfcVector2(diff.x, diff.y).SquareLength() < 1e-10) - continue; - } - intersect_results.push_back(std::make_pair(i, e0)); - continue; - } - - // for a valid intersection, s and t should be in range [0,1]. Including a bit of epsilon on s, potential double - // hits on two consecutive boundary segments are filtered - if (s >= -ai_epsilon * b_sqlen_inv && s <= 1.0 + ai_epsilon * b_sqlen_inv && t >= 0.0 && (t <= 1.0 || halfOpen)) { - // only insert the point into the list if it is sufficiently far away from the previous intersection point. - // This way, we avoid duplicate detection if the intersection is directly on the vertex between two segments. - if (!intersect_results.empty() && intersect_results.back().first == i - 1) { - const IfcVector3 diff = intersect_results.back().second - p; - if (IfcVector2(diff.x, diff.y).SquareLength() < 1e-10) - continue; - } - intersect_results.push_back(std::make_pair(i, p)); - } - } - - return !intersect_results.empty(); -} - -// ------------------------------------------------------------------------------------------------ -// note: this functions works on 3D vectors, but performs its intersection checks solely in xy. -bool PointInPoly(const IfcVector3 &p, const std::vector &boundary) { - // even-odd algorithm: take a random vector that extends from p to infinite - // and counts how many times it intersects edges of the boundary. - // because checking for segment intersections is prone to numeric inaccuracies - // or double detections (i.e. when hitting multiple adjacent segments at their - // shared vertices) we do it thrice with different rays and vote on it. - - // the even-odd algorithm doesn't work for points which lie directly on - // the border of the polygon. If any of our attempts produces this result, - // we return false immediately. - - std::vector> intersected_boundary; - size_t votes = 0; - - IntersectsBoundaryProfile(p, p + IfcVector3(1.0, 0, 0), boundary, true, intersected_boundary, true); - votes += intersected_boundary.size() % 2; - - intersected_boundary.clear(); - IntersectsBoundaryProfile(p, p + IfcVector3(0, 1.0, 0), boundary, true, intersected_boundary, true); - votes += intersected_boundary.size() % 2; - - intersected_boundary.clear(); - IntersectsBoundaryProfile(p, p + IfcVector3(0.6, -0.6, 0.0), boundary, true, intersected_boundary, true); - votes += intersected_boundary.size() % 2; - - return votes > 1; -} - -// ------------------------------------------------------------------------------------------------ -void ProcessPolygonalBoundedBooleanHalfSpaceDifference(const Schema_2x3::IfcPolygonalBoundedHalfSpace *hs, TempMesh &result, - const TempMesh &first_operand, - ConversionData &conv) { - ai_assert(hs != nullptr); - - const Schema_2x3::IfcPlane *const plane = hs->BaseSurface->ToPtr(); - if (!plane) { - IFCImporter::LogError("expected IfcPlane as base surface for the IfcHalfSpaceSolid"); - return; - } - - // extract plane base position vector and normal vector - IfcVector3 p, n(0.f, 0.f, 1.f); - if (plane->Position->Axis) { - ConvertDirection(n, plane->Position->Axis.Get()); - } - ConvertCartesianPoint(p, plane->Position->Location); - - if (!IsTrue(hs->AgreementFlag)) { - n *= -1.f; - } - - n.Normalize(); - - // obtain the polygonal bounding volume - std::shared_ptr profile = std::shared_ptr(new TempMesh()); - if (!ProcessCurve(hs->PolygonalBoundary, *profile.get(), conv)) { - IFCImporter::LogError("expected valid polyline for boundary of boolean halfspace"); - return; - } - - // determine winding order by calculating the normal. - IfcVector3 profileNormal = TempMesh::ComputePolygonNormal(profile->mVerts.data(), profile->mVerts.size()); - - IfcMatrix4 proj_inv; - ConvertAxisPlacement(proj_inv, hs->Position); - - // and map everything into a plane coordinate space so all intersection - // tests can be done in 2D space. - IfcMatrix4 proj = proj_inv; - proj.Inverse(); - - // clip the current contents of `meshout` against the plane we obtained from the second operand - const std::vector &in = first_operand.mVerts; - std::vector &outvert = result.mVerts; - std::vector &outvertcnt = result.mVertcnt; - - outvert.reserve(in.size()); - outvertcnt.reserve(first_operand.mVertcnt.size()); - - unsigned int vidx = 0; - std::vector::const_iterator begin = first_operand.mVertcnt.begin(); - std::vector::const_iterator end = first_operand.mVertcnt.end(); - std::vector::const_iterator iit; - for (iit = begin; iit != end; vidx += *iit++) { - // Our new approach: we cut the poly along the plane, then we intersect the part on the black side of the plane - // against the bounding polygon. All the white parts, and the black part outside the boundary polygon, are kept. - std::vector whiteside, blackside; - - { - const IfcVector3 *srcVertices = &in[vidx]; - const size_t srcVtxCount = *iit; - if (srcVtxCount == 0) - continue; - - IfcVector3 polyNormal = TempMesh::ComputePolygonNormal(srcVertices, srcVtxCount, true); - - // if the poly is parallel to the plane, put it completely on the black or white side - if (std::abs(polyNormal * n) > 0.9999) { - bool isOnWhiteSide = (srcVertices[0] - p) * n > -ai_epsilon; - std::vector &targetSide = isOnWhiteSide ? whiteside : blackside; - targetSide.insert(targetSide.end(), srcVertices, srcVertices + srcVtxCount); - } else { - // otherwise start building one polygon for each side. Whenever the current line segment intersects the plane - // we put a point there as an end of the current segment. Then we switch to the other side, put a point there, too, - // as a beginning of the current segment, and simply continue accumulating vertices. - bool isCurrentlyOnWhiteSide = ((srcVertices[0]) - p) * n > -ai_epsilon; - for (size_t a = 0; a < srcVtxCount; ++a) { - IfcVector3 e0 = srcVertices[a]; - IfcVector3 e1 = srcVertices[(a + 1) % srcVtxCount]; - IfcVector3 ei; - - // put starting point to the current mesh - std::vector &trgt = isCurrentlyOnWhiteSide ? whiteside : blackside; - trgt.push_back(srcVertices[a]); - - // if there's an intersection, put an end vertex there, switch to the other side's mesh, - // and add a starting vertex there, too - bool isPlaneHit = IntersectSegmentPlane(p, n, e0, e1, isCurrentlyOnWhiteSide, ei); - if (isPlaneHit) { - if (trgt.empty() || (trgt.back() - ei).SquareLength() > 1e-12) - trgt.push_back(ei); - isCurrentlyOnWhiteSide = !isCurrentlyOnWhiteSide; - std::vector &newtrgt = isCurrentlyOnWhiteSide ? whiteside : blackside; - newtrgt.push_back(ei); - } - } - } - } - - // the part on the white side can be written into the target mesh right away - WritePolygon(whiteside, result); - - // The black part is the piece we need to get rid of, but only the part of it within the boundary polygon. - // So we now need to construct all the polygons that result from BlackSidePoly minus BoundaryPoly. - FilterPolygon(blackside); - - // Complicated, II. We run along the polygon. a) When we're inside the boundary, we run on until we hit an - // intersection, which means we're leaving it. We then start a new out poly there. b) When we're outside the - // boundary, we start collecting vertices until we hit an intersection, then we run along the boundary until we hit - // an intersection, then we switch back to the poly and run on on this one again, and so on until we got a closed - // loop. Then we continue with the path we left to catch potential additional polys on the other side of the - // boundary as described in a) - if (!blackside.empty()) { - // poly edge index, intersection point, edge index in boundary poly - std::vector> intersections; - bool startedInside = PointInPoly(proj * blackside.front(), profile->mVerts); - bool isCurrentlyInside = startedInside; - - std::vector> intersected_boundary; - - for (size_t a = 0; a < blackside.size(); ++a) { - const IfcVector3 e0 = proj * blackside[a]; - const IfcVector3 e1 = proj * blackside[(a + 1) % blackside.size()]; - - intersected_boundary.clear(); - IntersectsBoundaryProfile(e0, e1, profile->mVerts, isCurrentlyInside, intersected_boundary); - // sort the hits by distance from e0 to get the correct in/out/in sequence. Manually :-( I miss you, C++11. - if (intersected_boundary.size() > 1) { - bool keepSorting = true; - while (keepSorting) { - keepSorting = false; - for (size_t b = 0; b < intersected_boundary.size() - 1; ++b) { - if ((intersected_boundary[b + 1].second - e0).SquareLength() < (intersected_boundary[b].second - e0).SquareLength()) { - keepSorting = true; - std::swap(intersected_boundary[b + 1], intersected_boundary[b]); - } - } - } - } - // now add them to the list of intersections - for (size_t b = 0; b < intersected_boundary.size(); ++b) - intersections.push_back(std::make_tuple(a, proj_inv * intersected_boundary[b].second, intersected_boundary[b].first)); - - // and calculate our new inside/outside state - if (intersected_boundary.size() & 1) - isCurrentlyInside = !isCurrentlyInside; - } - - // we got a list of in-out-combinations of intersections. That should be an even number of intersections, or - // we are facing a non-recoverable error. - if ((intersections.size() & 1) != 0) { - IFCImporter::LogWarn("Odd number of intersections, can't work with that. Omitting half space boundary check."); - continue; - } - - if (intersections.size() > 1) { - // If we started outside, the first intersection is a out->in intersection. Cycle them so that it - // starts with an intersection leaving the boundary - if (!startedInside) - for (size_t b = 0; b < intersections.size() - 1; ++b) - std::swap(intersections[b], intersections[(b + intersections.size() - 1) % intersections.size()]); - - // Filter pairs of out->in->out that lie too close to each other. - for (size_t a = 0; intersections.size() > 0 && a < intersections.size() - 1; /**/) { - if ((std::get<1>(intersections[a]) - std::get<1>(intersections[(a + 1) % intersections.size()])).SquareLength() < 1e-10) - intersections.erase(intersections.begin() + a, intersections.begin() + a + 2); - else - a++; - } - if (intersections.size() > 1 && (std::get<1>(intersections.back()) - std::get<1>(intersections.front())).SquareLength() < 1e-10) { - intersections.pop_back(); - intersections.erase(intersections.begin()); - } - } - - // no intersections at all: either completely inside the boundary, so everything gets discarded, or completely outside. - // in the latter case we're implementional lost. I'm simply going to ignore this, so a large poly will not get any - // holes if the boundary is smaller and does not touch it anywhere. - if (intersections.empty()) { - // starting point was outside -> everything is outside the boundary -> nothing is clipped -> add black side - // to result mesh unchanged - if (!startedInside) { - outvertcnt.push_back(static_cast(blackside.size())); - outvert.insert(outvert.end(), blackside.begin(), blackside.end()); - continue; - } else { - // starting point was inside the boundary -> everything is inside the boundary -> nothing is spared from the - // clipping -> nothing left to add to the result mesh - continue; - } - } - - // determine the direction in which we're marching along the boundary polygon. If the src poly is faced upwards - // and the boundary is also winded this way, we need to march *backwards* on the boundary. - const IfcVector3 polyNormal = IfcMatrix3(proj) * TempMesh::ComputePolygonNormal(blackside.data(), blackside.size()); - bool marchBackwardsOnBoundary = (profileNormal * polyNormal) >= 0.0; - - // Build closed loops from these intersections. Starting from an intersection leaving the boundary we - // walk along the polygon to the next intersection (which should be an IS entering the boundary poly). - // From there we walk along the boundary until we hit another intersection leaving the boundary, - // walk along the poly to the next IS and so on until we're back at the starting point. - // We remove every intersection we "used up", so any remaining intersection is the start of a new loop. - while (!intersections.empty()) { - std::vector resultpoly; - size_t currentIntersecIdx = 0; - - while (true) { - ai_assert(intersections.size() > currentIntersecIdx + 1); - std::tuple currintsec = intersections[currentIntersecIdx + 0]; - std::tuple nextintsec = intersections[currentIntersecIdx + 1]; - intersections.erase(intersections.begin() + currentIntersecIdx, intersections.begin() + currentIntersecIdx + 2); - - // we start with an in->out intersection - resultpoly.push_back(std::get<1>(currintsec)); - // climb along the polygon to the next intersection, which should be an out->in - size_t numPolyPoints = (std::get<0>(currintsec) > std::get<0>(nextintsec) ? blackside.size() : 0) + std::get<0>(nextintsec) - std::get<0>(currintsec); - for (size_t a = 1; a <= numPolyPoints; ++a) - resultpoly.push_back(blackside[(std::get<0>(currintsec) + a) % blackside.size()]); - // put the out->in intersection - resultpoly.push_back(std::get<1>(nextintsec)); - - // generate segments along the boundary polygon that lie in the poly's plane until we hit another intersection - IfcVector3 startingPoint = proj * std::get<1>(nextintsec); - size_t currentBoundaryEdgeIdx = (std::get<2>(nextintsec) + (marchBackwardsOnBoundary ? 1 : 0)) % profile->mVerts.size(); - size_t nextIntsecIdx = SIZE_MAX; - while (nextIntsecIdx == SIZE_MAX) { - IfcFloat t = 1e10; - - size_t nextBoundaryEdgeIdx = marchBackwardsOnBoundary ? (currentBoundaryEdgeIdx + profile->mVerts.size() - 1) : currentBoundaryEdgeIdx + 1; - nextBoundaryEdgeIdx %= profile->mVerts.size(); - // vertices of the current boundary segments - IfcVector3 currBoundaryPoint = profile->mVerts[currentBoundaryEdgeIdx]; - IfcVector3 nextBoundaryPoint = profile->mVerts[nextBoundaryEdgeIdx]; - // project the two onto the polygon - if (std::abs(polyNormal.z) > 1e-5) { - currBoundaryPoint.z = startingPoint.z + (currBoundaryPoint.x - startingPoint.x) * polyNormal.x / polyNormal.z + (currBoundaryPoint.y - startingPoint.y) * polyNormal.y / polyNormal.z; - nextBoundaryPoint.z = startingPoint.z + (nextBoundaryPoint.x - startingPoint.x) * polyNormal.x / polyNormal.z + (nextBoundaryPoint.y - startingPoint.y) * polyNormal.y / polyNormal.z; - } - - // build a direction that goes along the boundary border but lies in the poly plane - IfcVector3 boundaryPlaneNormal = ((nextBoundaryPoint - currBoundaryPoint) ^ profileNormal).Normalize(); - IfcVector3 dirAtPolyPlane = (boundaryPlaneNormal ^ polyNormal).Normalize() * (marchBackwardsOnBoundary ? -1.0 : 1.0); - // if we can project the direction to the plane, we can calculate a maximum marching distance along that dir - // until we finish that boundary segment and continue on the next - if (std::abs(polyNormal.z) > 1e-5) { - t = std::min(t, (nextBoundaryPoint - startingPoint).Length()); - } - - // check if the direction hits the loop start - if yes, we got a poly to output - IfcVector3 dirToThatPoint = proj * resultpoly.front() - startingPoint; - IfcFloat tpt = dirToThatPoint * dirAtPolyPlane; - if (tpt > -1e-6 && tpt <= t && (dirToThatPoint - tpt * dirAtPolyPlane).SquareLength() < 1e-10) { - nextIntsecIdx = intersections.size(); // dirty hack to end marching along the boundary and signal the end of the loop - t = tpt; - } - - // also check if the direction hits any in->out intersections earlier. If we hit one, we can switch back - // to marching along the poly border from that intersection point - for (size_t a = 0; a < intersections.size(); a += 2) { - dirToThatPoint = proj * std::get<1>(intersections[a]) - startingPoint; - tpt = dirToThatPoint * dirAtPolyPlane; - if (tpt > -1e-6 && tpt <= t && (dirToThatPoint - tpt * dirAtPolyPlane).SquareLength() < 1e-10) { - nextIntsecIdx = a; // switch back to poly and march on from this in->out intersection - t = tpt; - } - } - - // if we keep marching on the boundary, put the segment end point to the result poly and well... keep marching - if (nextIntsecIdx == SIZE_MAX) { - resultpoly.push_back(proj_inv * nextBoundaryPoint); - currentBoundaryEdgeIdx = nextBoundaryEdgeIdx; - startingPoint = nextBoundaryPoint; - } - - // quick endless loop check - if (resultpoly.size() > blackside.size() + profile->mVerts.size()) { - IFCImporter::LogError("Encountered endless loop while clipping polygon against poly-bounded half space."); - break; - } - } - - // we're back on the poly - if this is the intersection we started from, we got a closed loop. - if (nextIntsecIdx >= intersections.size()) { - break; - } - - // otherwise it's another intersection. Continue marching from there. - currentIntersecIdx = nextIntsecIdx; - } - - WritePolygon(resultpoly, result); - } - } - } - IFCImporter::LogVerboseDebug("generating CSG geometry by plane clipping with polygonal bounding (IfcBooleanClippingResult)"); -} - -// ------------------------------------------------------------------------------------------------ -void ProcessBooleanExtrudedAreaSolidDifference(const Schema_2x3::IfcExtrudedAreaSolid *as, TempMesh &result, - const TempMesh &first_operand, - ConversionData &conv) { - ai_assert(as != nullptr); - - // This case is handled by reduction to an instance of the quadrify() algorithm. - // Obviously, this won't work for arbitrarily complex cases. In fact, the first - // operand should be near-planar. Luckily, this is usually the case in Ifc - // buildings. - - std::shared_ptr meshtmp = std::shared_ptr(new TempMesh()); - ProcessExtrudedAreaSolid(*as, *meshtmp, conv, false); - - std::vector openings(1, TempOpening(as, IfcVector3(0, 0, 0), meshtmp, std::shared_ptr())); - - result = first_operand; - - TempMesh temp; - - std::vector::const_iterator vit = first_operand.mVerts.begin(); - for (unsigned int pcount : first_operand.mVertcnt) { - temp.Clear(); - - temp.mVerts.insert(temp.mVerts.end(), vit, vit + pcount); - temp.mVertcnt.push_back(pcount); - - // The algorithms used to generate mesh geometry sometimes - // spit out lines or other degenerates which must be - // filtered to avoid running into assertions later on. - - // ComputePolygonNormal returns the Newell normal, so the - // length of the normal is the area of the polygon. - const IfcVector3 &normal = temp.ComputeLastPolygonNormal(false); - if (normal.SquareLength() < static_cast(1e-5)) { - IFCImporter::LogWarn("skipping degenerate polygon (ProcessBooleanExtrudedAreaSolidDifference)"); - continue; - } - - GenerateOpenings(openings, temp, false, true); - result.Append(temp); - - vit += pcount; - } - - IFCImporter::LogVerboseDebug("generating CSG geometry by geometric difference to a solid (IfcExtrudedAreaSolid)"); -} - -// ------------------------------------------------------------------------------------------------ -void ProcessBoolean(const Schema_2x3::IfcBooleanResult &boolean, TempMesh &result, ConversionData &conv) { - // supported CSG operations: - // DIFFERENCE - if (const Schema_2x3::IfcBooleanResult *const clip = boolean.ToPtr()) { - if (clip->Operator != "DIFFERENCE") { - IFCImporter::LogWarn("encountered unsupported boolean operator: ", (std::string)clip->Operator); - return; - } - - // supported cases (1st operand): - // IfcBooleanResult -- call ProcessBoolean recursively - // IfcSweptAreaSolid -- obtain polygonal geometry first - - // supported cases (2nd operand): - // IfcHalfSpaceSolid -- easy, clip against plane - // IfcExtrudedAreaSolid -- reduce to an instance of the quadrify() algorithm - - const Schema_2x3::IfcHalfSpaceSolid *const hs = clip->SecondOperand->ResolveSelectPtr(conv.db); - const Schema_2x3::IfcExtrudedAreaSolid *const as = clip->SecondOperand->ResolveSelectPtr(conv.db); - if (!hs && !as) { - IFCImporter::LogError("expected IfcHalfSpaceSolid or IfcExtrudedAreaSolid as second clipping operand"); - return; - } - - TempMesh first_operand; - if (const Schema_2x3::IfcBooleanResult *const op0 = clip->FirstOperand->ResolveSelectPtr(conv.db)) { - ProcessBoolean(*op0, first_operand, conv); - } else if (const Schema_2x3::IfcSweptAreaSolid *const swept = clip->FirstOperand->ResolveSelectPtr(conv.db)) { - ProcessSweptAreaSolid(*swept, first_operand, conv); - } else { - IFCImporter::LogError("expected IfcSweptAreaSolid or IfcBooleanResult as first clipping operand"); - return; - } - - if (hs) { - - const Schema_2x3::IfcPolygonalBoundedHalfSpace *const hs_bounded = clip->SecondOperand->ResolveSelectPtr(conv.db); - if (hs_bounded) { - ProcessPolygonalBoundedBooleanHalfSpaceDifference(hs_bounded, result, first_operand, conv); - } else { - ProcessBooleanHalfSpaceDifference(hs, result, first_operand, conv); - } - } else { - ProcessBooleanExtrudedAreaSolidDifference(as, result, first_operand, conv); - } - } else { - IFCImporter::LogWarn("skipping unknown IfcBooleanResult entity, type is ", boolean.GetClassName()); - } -} - -} // namespace IFC -} // namespace Assimp - -#endif diff --git a/libs/assimp/code/AssetLib/IFC/IFCCurve.cpp b/libs/assimp/code/AssetLib/IFC/IFCCurve.cpp deleted file mode 100644 index 19732ef..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCCurve.cpp +++ /dev/null @@ -1,618 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFCProfile.cpp - * @brief Read profile and curves entities from IFC files - */ - -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER -#include "IFCUtil.h" - -namespace Assimp { -namespace IFC { -namespace { - - -// -------------------------------------------------------------------------------- -// Conic is the base class for Circle and Ellipse -// -------------------------------------------------------------------------------- -class Conic : public Curve { -public: - // -------------------------------------------------- - Conic(const Schema_2x3::IfcConic& entity, ConversionData& conv) - : Curve(entity,conv) { - IfcMatrix4 trafo; - ConvertAxisPlacement(trafo,*entity.Position,conv); - - // for convenience, extract the matrix rows - location = IfcVector3(trafo.a4,trafo.b4,trafo.c4); - p[0] = IfcVector3(trafo.a1,trafo.b1,trafo.c1); - p[1] = IfcVector3(trafo.a2,trafo.b2,trafo.c2); - p[2] = IfcVector3(trafo.a3,trafo.b3,trafo.c3); - } - - // -------------------------------------------------- - bool IsClosed() const { - return true; - } - - // -------------------------------------------------- - size_t EstimateSampleCount(IfcFloat a, IfcFloat b) const { - ai_assert( InRange( a ) ); - ai_assert( InRange( b ) ); - - a *= conv.angle_scale; - b *= conv.angle_scale; - - a = std::fmod(a,static_cast( AI_MATH_TWO_PI )); - b = std::fmod(b,static_cast( AI_MATH_TWO_PI )); - const IfcFloat setting = static_cast( AI_MATH_PI * conv.settings.conicSamplingAngle / 180.0 ); - return static_cast( std::ceil(std::abs( b-a)) / setting); - } - - // -------------------------------------------------- - ParamRange GetParametricRange() const { - return std::make_pair(static_cast( 0. ), static_cast( AI_MATH_TWO_PI / conv.angle_scale )); - } - -protected: - IfcVector3 location, p[3]; -}; - -// -------------------------------------------------------------------------------- -// Circle -// -------------------------------------------------------------------------------- -class Circle : public Conic { -public: - // -------------------------------------------------- - Circle(const Schema_2x3::IfcCircle& entity, ConversionData& conv) - : Conic(entity,conv) - , entity(entity) - { - } - - // -------------------------------------------------- - IfcVector3 Eval(IfcFloat u) const { - u = -conv.angle_scale * u; - return location + static_cast(entity.Radius)*(static_cast(std::cos(u))*p[0] + - static_cast(std::sin(u))*p[1]); - } - -private: - const Schema_2x3::IfcCircle& entity; -}; - -// -------------------------------------------------------------------------------- -// Ellipse -// -------------------------------------------------------------------------------- -class Ellipse : public Conic { -public: - // -------------------------------------------------- - Ellipse(const Schema_2x3::IfcEllipse& entity, ConversionData& conv) - : Conic(entity,conv) - , entity(entity) { - // empty - } - - // -------------------------------------------------- - IfcVector3 Eval(IfcFloat u) const { - u = -conv.angle_scale * u; - return location + static_cast(entity.SemiAxis1)*static_cast(std::cos(u))*p[0] + - static_cast(entity.SemiAxis2)*static_cast(std::sin(u))*p[1]; - } - -private: - const Schema_2x3::IfcEllipse& entity; -}; - -// -------------------------------------------------------------------------------- -// Line -// -------------------------------------------------------------------------------- -class Line : public Curve { -public: - // -------------------------------------------------- - Line(const Schema_2x3::IfcLine& entity, ConversionData& conv) - : Curve(entity,conv) { - ConvertCartesianPoint(p,entity.Pnt); - ConvertVector(v,entity.Dir); - } - - // -------------------------------------------------- - bool IsClosed() const { - return false; - } - - // -------------------------------------------------- - IfcVector3 Eval(IfcFloat u) const { - return p + u*v; - } - - // -------------------------------------------------- - size_t EstimateSampleCount(IfcFloat a, IfcFloat b) const { - ai_assert( InRange( a ) ); - ai_assert( InRange( b ) ); - // two points are always sufficient for a line segment - return a==b ? 1 : 2; - } - - - // -------------------------------------------------- - void SampleDiscrete(TempMesh& out,IfcFloat a, IfcFloat b) const { - ai_assert( InRange( a ) ); - ai_assert( InRange( b ) ); - - if (a == b) { - out.mVerts.push_back(Eval(a)); - return; - } - out.mVerts.reserve(out.mVerts.size()+2); - out.mVerts.push_back(Eval(a)); - out.mVerts.push_back(Eval(b)); - } - - // -------------------------------------------------- - ParamRange GetParametricRange() const { - const IfcFloat inf = std::numeric_limits::infinity(); - - return std::make_pair(-inf,+inf); - } - -private: - IfcVector3 p,v; -}; - -// -------------------------------------------------------------------------------- -// CompositeCurve joins multiple smaller, bounded curves -// -------------------------------------------------------------------------------- -class CompositeCurve : public BoundedCurve { - typedef std::pair< std::shared_ptr< BoundedCurve >, bool > CurveEntry; - -public: - // -------------------------------------------------- - CompositeCurve(const Schema_2x3::IfcCompositeCurve& entity, ConversionData& conv) - : BoundedCurve(entity,conv) - , total() { - curves.reserve(entity.Segments.size()); - for(const Schema_2x3::IfcCompositeCurveSegment& curveSegment :entity.Segments) { - // according to the specification, this must be a bounded curve - std::shared_ptr< Curve > cv(Curve::Convert(curveSegment.ParentCurve,conv)); - std::shared_ptr< BoundedCurve > bc = std::dynamic_pointer_cast(cv); - - if (!bc) { - IFCImporter::LogError("expected segment of composite curve to be a bounded curve"); - continue; - } - - if ( (std::string)curveSegment.Transition != "CONTINUOUS" ) { - IFCImporter::LogVerboseDebug("ignoring transition code on composite curve segment, only continuous transitions are supported"); - } - - curves.push_back( CurveEntry(bc,IsTrue(curveSegment.SameSense)) ); - total += bc->GetParametricRangeDelta(); - } - - if (curves.empty()) { - throw CurveError("empty composite curve"); - } - } - - // -------------------------------------------------- - IfcVector3 Eval(IfcFloat u) const { - if (curves.empty()) { - return IfcVector3(); - } - - IfcFloat acc = 0; - for(const CurveEntry& entry : curves) { - const ParamRange& range = entry.first->GetParametricRange(); - const IfcFloat delta = std::abs(range.second-range.first); - if (u < acc+delta) { - return entry.first->Eval( entry.second ? (u-acc) + range.first : range.second-(u-acc)); - } - - acc += delta; - } - // clamp to end - return curves.back().first->Eval(curves.back().first->GetParametricRange().second); - } - - // -------------------------------------------------- - size_t EstimateSampleCount(IfcFloat a, IfcFloat b) const { - ai_assert( InRange( a ) ); - ai_assert( InRange( b ) ); - size_t cnt = 0; - - IfcFloat acc = 0; - for(const CurveEntry& entry : curves) { - const ParamRange& range = entry.first->GetParametricRange(); - const IfcFloat delta = std::abs(range.second-range.first); - if (a <= acc+delta && b >= acc) { - const IfcFloat at = std::max(static_cast( 0. ),a-acc), bt = std::min(delta,b-acc); - cnt += entry.first->EstimateSampleCount( entry.second ? at + range.first : range.second - bt, entry.second ? bt + range.first : range.second - at ); - } - - acc += delta; - } - - return cnt; - } - - // -------------------------------------------------- - void SampleDiscrete(TempMesh& out,IfcFloat a, IfcFloat b) const { - ai_assert( InRange( a ) ); - ai_assert( InRange( b ) ); - - const size_t cnt = EstimateSampleCount(a,b); - out.mVerts.reserve(out.mVerts.size() + cnt); - - for(const CurveEntry& entry : curves) { - const size_t curCnt = out.mVerts.size(); - entry.first->SampleDiscrete(out); - - if (!entry.second && curCnt != out.mVerts.size()) { - std::reverse(out.mVerts.begin() + curCnt, out.mVerts.end()); - } - } - } - - // -------------------------------------------------- - ParamRange GetParametricRange() const { - return std::make_pair(static_cast( 0. ),total); - } - -private: - std::vector< CurveEntry > curves; - IfcFloat total; -}; - -// -------------------------------------------------------------------------------- -// TrimmedCurve can be used to trim an unbounded curve to a bounded range -// -------------------------------------------------------------------------------- -class TrimmedCurve : public BoundedCurve { -public: - // -------------------------------------------------- - TrimmedCurve(const Schema_2x3::IfcTrimmedCurve& entity, ConversionData& conv) - : BoundedCurve(entity,conv), - base(std::shared_ptr(Curve::Convert(entity.BasisCurve,conv))) - { - typedef std::shared_ptr Entry; - - // for some reason, trimmed curves can either specify a parametric value - // or a point on the curve, or both. And they can even specify which of the - // two representations they prefer, even though an information invariant - // claims that they must be identical if both are present. - // oh well. - bool have_param = false, have_point = false; - IfcVector3 point; - for(const Entry& sel :entity.Trim1) { - if (const ::Assimp::STEP::EXPRESS::REAL* const r = sel->ToPtr<::Assimp::STEP::EXPRESS::REAL>()) { - range.first = *r; - have_param = true; - break; - } - else if (const Schema_2x3::IfcCartesianPoint* const curR = sel->ResolveSelectPtr(conv.db)) { - ConvertCartesianPoint(point, *curR); - have_point = true; - } - } - if (!have_param) { - if (!have_point || !base->ReverseEval(point,range.first)) { - throw CurveError("IfcTrimmedCurve: failed to read first trim parameter, ignoring curve"); - } - } - have_param = false, have_point = false; - for(const Entry& sel :entity.Trim2) { - if (const ::Assimp::STEP::EXPRESS::REAL* const r = sel->ToPtr<::Assimp::STEP::EXPRESS::REAL>()) { - range.second = *r; - have_param = true; - break; - } - else if (const Schema_2x3::IfcCartesianPoint* const curR = sel->ResolveSelectPtr(conv.db)) { - ConvertCartesianPoint(point, *curR); - have_point = true; - } - } - if (!have_param) { - if (!have_point || !base->ReverseEval(point,range.second)) { - throw CurveError("IfcTrimmedCurve: failed to read second trim parameter, ignoring curve"); - } - } - - agree_sense = IsTrue(entity.SenseAgreement); - if( !agree_sense ) { - std::swap(range.first,range.second); - } - - // "NOTE In case of a closed curve, it may be necessary to increment t1 or t2 - // by the parametric length for consistency with the sense flag." - if (base->IsClosed()) { - if( range.first > range.second ) { - range.second += base->GetParametricRangeDelta(); - } - } - - maxval = range.second-range.first; - ai_assert(maxval >= 0); - } - - // -------------------------------------------------- - IfcVector3 Eval(IfcFloat p) const { - ai_assert(InRange(p)); - return base->Eval( TrimParam(p) ); - } - - // -------------------------------------------------- - size_t EstimateSampleCount(IfcFloat a, IfcFloat b) const { - ai_assert( InRange( a ) ); - ai_assert( InRange( b ) ); - return base->EstimateSampleCount(TrimParam(a),TrimParam(b)); - } - - // -------------------------------------------------- - void SampleDiscrete(TempMesh& out,IfcFloat a,IfcFloat b) const { - ai_assert(InRange(a)); - ai_assert(InRange(b)); - return base->SampleDiscrete(out,TrimParam(a),TrimParam(b)); - } - - // -------------------------------------------------- - ParamRange GetParametricRange() const { - return std::make_pair(static_cast( 0. ),maxval); - } - -private: - // -------------------------------------------------- - IfcFloat TrimParam(IfcFloat f) const { - return agree_sense ? f + range.first : range.second - f; - } - -private: - ParamRange range; - IfcFloat maxval; - bool agree_sense; - - std::shared_ptr base; -}; - - -// -------------------------------------------------------------------------------- -// PolyLine is a 'curve' defined by linear interpolation over a set of discrete points -// -------------------------------------------------------------------------------- -class PolyLine : public BoundedCurve { -public: - // -------------------------------------------------- - PolyLine(const Schema_2x3::IfcPolyline& entity, ConversionData& conv) - : BoundedCurve(entity,conv) - { - points.reserve(entity.Points.size()); - - IfcVector3 t; - for(const Schema_2x3::IfcCartesianPoint& cp : entity.Points) { - ConvertCartesianPoint(t,cp); - points.push_back(t); - } - } - - // -------------------------------------------------- - IfcVector3 Eval(IfcFloat p) const { - ai_assert(InRange(p)); - - const size_t b = static_cast(std::floor(p)); - if (b == points.size()-1) { - return points.back(); - } - - const IfcFloat d = p-static_cast(b); - return points[b+1] * d + points[b] * (static_cast( 1. )-d); - } - - // -------------------------------------------------- - size_t EstimateSampleCount(IfcFloat a, IfcFloat b) const { - ai_assert(InRange(a)); - ai_assert(InRange(b)); - return static_cast( std::ceil(b) - std::floor(a) ); - } - - // -------------------------------------------------- - ParamRange GetParametricRange() const { - return std::make_pair(static_cast( 0. ),static_cast(points.size()-1)); - } - -private: - std::vector points; -}; - -} // anon - -// ------------------------------------------------------------------------------------------------ -Curve* Curve::Convert(const IFC::Schema_2x3::IfcCurve& curve,ConversionData& conv) { - if(curve.ToPtr()) { - if(const Schema_2x3::IfcPolyline* c = curve.ToPtr()) { - return new PolyLine(*c,conv); - } - if(const Schema_2x3::IfcTrimmedCurve* c = curve.ToPtr()) { - return new TrimmedCurve(*c,conv); - } - if(const Schema_2x3::IfcCompositeCurve* c = curve.ToPtr()) { - return new CompositeCurve(*c,conv); - } - } - - if(curve.ToPtr()) { - if(const Schema_2x3::IfcCircle* c = curve.ToPtr()) { - return new Circle(*c,conv); - } - if(const Schema_2x3::IfcEllipse* c = curve.ToPtr()) { - return new Ellipse(*c,conv); - } - } - - if(const Schema_2x3::IfcLine* c = curve.ToPtr()) { - return new Line(*c,conv); - } - - // XXX OffsetCurve2D, OffsetCurve3D not currently supported - return nullptr; -} - -#ifdef ASSIMP_BUILD_DEBUG -// ------------------------------------------------------------------------------------------------ -bool Curve::InRange(IfcFloat u) const { - const ParamRange range = GetParametricRange(); - if (IsClosed()) { - return true; - } - const IfcFloat epsilon = Math::getEpsilon(); - return u - range.first > -epsilon && range.second - u > -epsilon; -} -#endif - -// ------------------------------------------------------------------------------------------------ -IfcFloat Curve::GetParametricRangeDelta() const { - const ParamRange& range = GetParametricRange(); - return std::abs(range.second - range.first); -} - -// ------------------------------------------------------------------------------------------------ -size_t Curve::EstimateSampleCount(IfcFloat a, IfcFloat b) const { - (void)(a); (void)(b); - ai_assert( InRange( a ) ); - ai_assert( InRange( b ) ); - - // arbitrary default value, deriving classes should supply better suited values - return 16; -} - -// ------------------------------------------------------------------------------------------------ -IfcFloat RecursiveSearch(const Curve* cv, const IfcVector3& val, IfcFloat a, IfcFloat b, - unsigned int samples, IfcFloat threshold, unsigned int recurse = 0, unsigned int max_recurse = 15) { - ai_assert(samples>1); - - const IfcFloat delta = (b-a)/samples, inf = std::numeric_limits::infinity(); - IfcFloat min_point[2] = {a,b}, min_diff[2] = {inf,inf}; - IfcFloat runner = a; - - for (unsigned int i = 0; i < samples; ++i, runner += delta) { - const IfcFloat diff = (cv->Eval(runner)-val).SquareLength(); - if (diff < min_diff[0]) { - min_diff[1] = min_diff[0]; - min_point[1] = min_point[0]; - - min_diff[0] = diff; - min_point[0] = runner; - } - else if (diff < min_diff[1]) { - min_diff[1] = diff; - min_point[1] = runner; - } - } - - ai_assert( min_diff[ 0 ] != inf ); - ai_assert( min_diff[ 1 ] != inf ); - if ( std::fabs(a-min_point[0]) < threshold || recurse >= max_recurse) { - return min_point[0]; - } - - // fix for closed curves to take their wrap-over into account - if (cv->IsClosed() && std::fabs(min_point[0]-min_point[1]) > cv->GetParametricRangeDelta()*0.5 ) { - const Curve::ParamRange& range = cv->GetParametricRange(); - const IfcFloat wrapdiff = (cv->Eval(range.first)-val).SquareLength(); - - if (wrapdiff < min_diff[0]) { - const IfcFloat t = min_point[0]; - min_point[0] = min_point[1] > min_point[0] ? range.first : range.second; - min_point[1] = t; - } - } - - return RecursiveSearch(cv,val,min_point[0],min_point[1],samples,threshold,recurse+1,max_recurse); -} - -// ------------------------------------------------------------------------------------------------ -bool Curve::ReverseEval(const IfcVector3& val, IfcFloat& paramOut) const -{ - // note: the following algorithm is not guaranteed to find the 'right' parameter value - // in all possible cases, but it will always return at least some value so this function - // will never fail in the default implementation. - - // XXX derive threshold from curve topology - static const IfcFloat threshold = 1e-4f; - static const unsigned int samples = 16; - - const ParamRange& range = GetParametricRange(); - paramOut = RecursiveSearch(this,val,range.first,range.second,samples,threshold); - - return true; -} - -// ------------------------------------------------------------------------------------------------ -void Curve::SampleDiscrete(TempMesh& out,IfcFloat a, IfcFloat b) const { - ai_assert( InRange( a ) ); - ai_assert( InRange( b ) ); - - const size_t cnt = std::max(static_cast(0),EstimateSampleCount(a,b)); - out.mVerts.reserve( out.mVerts.size() + cnt + 1); - - IfcFloat p = a, delta = (b-a)/cnt; - for(size_t i = 0; i <= cnt; ++i, p += delta) { - out.mVerts.push_back(Eval(p)); - } -} - -// ------------------------------------------------------------------------------------------------ -bool BoundedCurve::IsClosed() const { - return false; -} - -// ------------------------------------------------------------------------------------------------ -void BoundedCurve::SampleDiscrete(TempMesh& out) const { - const ParamRange& range = GetParametricRange(); - ai_assert( range.first != std::numeric_limits::infinity() ); - ai_assert( range.second != std::numeric_limits::infinity() ); - - return SampleDiscrete(out,range.first,range.second); -} - -} // IFC -} // Assimp - -#endif // ASSIMP_BUILD_NO_IFC_IMPORTER diff --git a/libs/assimp/code/AssetLib/IFC/IFCGeometry.cpp b/libs/assimp/code/AssetLib/IFC/IFCGeometry.cpp deleted file mode 100644 index ef59542..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCGeometry.cpp +++ /dev/null @@ -1,932 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFCGeometry.cpp - * @brief Geometry conversion and synthesis for IFC - */ - - - -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER -#include "IFCUtil.h" -#include "Common/PolyTools.h" -#include "PostProcessing/ProcessHelper.h" - -#ifdef ASSIMP_USE_HUNTER -# include -# include -#else -# include "../contrib/poly2tri/poly2tri/poly2tri.h" -# include "../contrib/clipper/clipper.hpp" -#endif - -#include -#include - -namespace Assimp { -namespace IFC { - -// ------------------------------------------------------------------------------------------------ -bool ProcessPolyloop(const Schema_2x3::IfcPolyLoop& loop, TempMesh& meshout, ConversionData& /*conv*/) -{ - size_t cnt = 0; - for(const Schema_2x3::IfcCartesianPoint& c : loop.Polygon) { - IfcVector3 tmp; - ConvertCartesianPoint(tmp,c); - - meshout.mVerts.push_back(tmp); - ++cnt; - } - - meshout.mVertcnt.push_back(static_cast(cnt)); - - // zero- or one- vertex polyloops simply ignored - if (meshout.mVertcnt.back() > 1) { - return true; - } - - if (meshout.mVertcnt.back()==1) { - meshout.mVertcnt.pop_back(); - meshout.mVerts.pop_back(); - } - return false; -} - -// ------------------------------------------------------------------------------------------------ -void ProcessPolygonBoundaries(TempMesh& result, const TempMesh& inmesh, size_t master_bounds = (size_t)-1) -{ - // handle all trivial cases - if(inmesh.mVertcnt.empty()) { - return; - } - if(inmesh.mVertcnt.size() == 1) { - result.Append(inmesh); - return; - } - - ai_assert(std::count(inmesh.mVertcnt.begin(), inmesh.mVertcnt.end(), 0u) == 0); - - typedef std::vector::const_iterator face_iter; - - face_iter begin = inmesh.mVertcnt.begin(), end = inmesh.mVertcnt.end(), iit; - std::vector::const_iterator outer_polygon_it = end; - - // major task here: given a list of nested polygon boundaries (one of which - // is the outer contour), reduce the triangulation task arising here to - // one that can be solved using the "quadrulation" algorithm which we use - // for pouring windows out of walls. The algorithm does not handle all - // cases but at least it is numerically stable and gives "nice" triangles. - - // first compute normals for all polygons using Newell's algorithm - // do not normalize 'normals', we need the original length for computing the polygon area - std::vector normals; - inmesh.ComputePolygonNormals(normals,false); - - // One of the polygons might be a IfcFaceOuterBound (in which case `master_bounds` - // is its index). Sadly we can't rely on it, the docs say 'At most one of the bounds - // shall be of the type IfcFaceOuterBound' - IfcFloat area_outer_polygon = 1e-10f; - if (master_bounds != (size_t)-1) { - ai_assert(master_bounds < inmesh.mVertcnt.size()); - outer_polygon_it = begin + master_bounds; - } - else { - for(iit = begin; iit != end; ++iit) { - // find the polygon with the largest area and take it as the outer bound. - IfcVector3& n = normals[std::distance(begin,iit)]; - const IfcFloat area = n.SquareLength(); - if (area > area_outer_polygon) { - area_outer_polygon = area; - outer_polygon_it = iit; - } - } - } - if (outer_polygon_it == end) { - return; - } - - const size_t outer_polygon_size = *outer_polygon_it; - const IfcVector3& master_normal = normals[std::distance(begin, outer_polygon_it)]; - - // Generate fake openings to meet the interface for the quadrulate - // algorithm. It boils down to generating small boxes given the - // inner polygon and the surface normal of the outer contour. - // It is important that we use the outer contour's normal because - // this is the plane onto which the quadrulate algorithm will - // project the entire mesh. - std::vector fake_openings; - fake_openings.reserve(inmesh.mVertcnt.size()-1); - - std::vector::const_iterator vit = inmesh.mVerts.begin(), outer_vit; - - for(iit = begin; iit != end; vit += *iit++) { - if (iit == outer_polygon_it) { - outer_vit = vit; - continue; - } - - // Filter degenerate polygons to keep them from causing trouble later on - IfcVector3& n = normals[std::distance(begin,iit)]; - const IfcFloat area = n.SquareLength(); - if (area < 1e-5f) { - IFCImporter::LogWarn("skipping degenerate polygon (ProcessPolygonBoundaries)"); - continue; - } - - fake_openings.push_back(TempOpening()); - TempOpening& opening = fake_openings.back(); - - opening.extrusionDir = master_normal; - opening.solid = nullptr; - - opening.profileMesh = std::make_shared(); - opening.profileMesh->mVerts.reserve(*iit); - opening.profileMesh->mVertcnt.push_back(*iit); - - std::copy(vit, vit + *iit, std::back_inserter(opening.profileMesh->mVerts)); - } - - // fill a mesh with ONLY the main polygon - TempMesh temp; - temp.mVerts.reserve(outer_polygon_size); - temp.mVertcnt.push_back(static_cast(outer_polygon_size)); - std::copy(outer_vit, outer_vit+outer_polygon_size, - std::back_inserter(temp.mVerts)); - - GenerateOpenings(fake_openings, temp, false, false); - result.Append(temp); -} - -// ------------------------------------------------------------------------------------------------ -void ProcessConnectedFaceSet(const Schema_2x3::IfcConnectedFaceSet& fset, TempMesh& result, ConversionData& conv) -{ - for(const Schema_2x3::IfcFace& face : fset.CfsFaces) { - // size_t ob = -1, cnt = 0; - TempMesh meshout; - for(const Schema_2x3::IfcFaceBound& bound : face.Bounds) { - - if(const Schema_2x3::IfcPolyLoop* const polyloop = bound.Bound->ToPtr()) { - if(ProcessPolyloop(*polyloop, meshout,conv)) { - - // The outer boundary is better determined by checking which - // polygon covers the largest area. - - //if(bound.ToPtr()) { - // ob = cnt; - //} - //++cnt; - - } - } - else { - IFCImporter::LogWarn("skipping unknown IfcFaceBound entity, type is ", bound.Bound->GetClassName()); - continue; - } - - // And this, even though it is sometimes TRUE and sometimes FALSE, - // does not really improve results. - - /*if(!IsTrue(bound.Orientation)) { - size_t c = 0; - for(unsigned int& c : meshout.vertcnt) { - std::reverse(result.verts.begin() + cnt,result.verts.begin() + cnt + c); - cnt += c; - } - }*/ - } - ProcessPolygonBoundaries(result, meshout); - } -} - -// ------------------------------------------------------------------------------------------------ -void ProcessRevolvedAreaSolid(const Schema_2x3::IfcRevolvedAreaSolid& solid, TempMesh& result, ConversionData& conv) -{ - TempMesh meshout; - - // first read the profile description - if(!ProcessProfile(*solid.SweptArea,meshout,conv) || meshout.mVerts.size()<=1) { - return; - } - - IfcVector3 axis, pos; - ConvertAxisPlacement(axis,pos,solid.Axis); - - IfcMatrix4 tb0,tb1; - IfcMatrix4::Translation(pos,tb0); - IfcMatrix4::Translation(-pos,tb1); - - const std::vector& in = meshout.mVerts; - const size_t size=in.size(); - - bool has_area = solid.SweptArea->ProfileType == "AREA" && size>2; - const IfcFloat max_angle = solid.Angle*conv.angle_scale; - if(std::fabs(max_angle) < 1e-3) { - if(has_area) { - result = meshout; - } - return; - } - - const unsigned int cnt_segments = std::max(2u,static_cast(conv.settings.cylindricalTessellation * std::fabs(max_angle)/AI_MATH_HALF_PI_F)); - const IfcFloat delta = max_angle/cnt_segments; - - has_area = has_area && std::fabs(max_angle) < AI_MATH_TWO_PI_F*0.99; - - result.mVerts.reserve(size*((cnt_segments+1)*4+(has_area?2:0))); - result.mVertcnt.reserve(size*cnt_segments+2); - - IfcMatrix4 rot; - rot = tb0 * IfcMatrix4::Rotation(delta,axis,rot) * tb1; - - size_t base = 0; - std::vector& out = result.mVerts; - - // dummy data to simplify later processing - for(size_t i = 0; i < size; ++i) { - out.insert(out.end(),4,in[i]); - } - - for(unsigned int seg = 0; seg < cnt_segments; ++seg) { - for(size_t i = 0; i < size; ++i) { - const size_t next = (i+1)%size; - - result.mVertcnt.push_back(4); - const IfcVector3 base_0 = out[base+i*4+3],base_1 = out[base+next*4+3]; - - out.push_back(base_0); - out.push_back(base_1); - out.push_back(rot*base_1); - out.push_back(rot*base_0); - } - base += size*4; - } - - out.erase(out.begin(),out.begin()+size*4); - - if(has_area) { - // leave the triangulation of the profile area to the ear cutting - // implementation in aiProcess_Triangulate - for now we just - // feed in two huge polygons. - base -= size*8; - for(size_t i = size; i--; ) { - out.push_back(out[base+i*4+3]); - } - for(size_t i = 0; i < size; ++i ) { - out.push_back(out[i*4]); - } - result.mVertcnt.push_back(static_cast(size)); - result.mVertcnt.push_back(static_cast(size)); - } - - IfcMatrix4 trafo; - ConvertAxisPlacement(trafo, solid.Position); - - result.Transform(trafo); - IFCImporter::LogVerboseDebug("generate mesh procedurally by radial extrusion (IfcRevolvedAreaSolid)"); -} - -// ------------------------------------------------------------------------------------------------ -void ProcessSweptDiskSolid(const Schema_2x3::IfcSweptDiskSolid &solid, TempMesh& result, ConversionData& conv) -{ - const Curve* const curve = Curve::Convert(*solid.Directrix, conv); - if(!curve) { - IFCImporter::LogError("failed to convert Directrix curve (IfcSweptDiskSolid)"); - return; - } - - const unsigned int cnt_segments = conv.settings.cylindricalTessellation; - const IfcFloat deltaAngle = AI_MATH_TWO_PI/cnt_segments; - - TempMesh temp; - curve->SampleDiscrete(temp, solid.StartParam, solid.EndParam); - const std::vector& curve_points = temp.mVerts; - - const size_t samples = curve_points.size(); - - result.mVerts.reserve(cnt_segments * samples * 4); - result.mVertcnt.reserve((cnt_segments - 1) * samples); - - std::vector points; - points.reserve(cnt_segments * samples); - - if(curve_points.empty()) { - IFCImporter::LogWarn("curve evaluation yielded no points (IfcSweptDiskSolid)"); - return; - } - - IfcVector3 current = curve_points[0]; - IfcVector3 previous = current; - IfcVector3 next; - - IfcVector3 startvec; - startvec.x = 1.0f; - startvec.y = 1.0f; - startvec.z = 1.0f; - - unsigned int last_dir = 0; - - // generate circles at the sweep positions - for(size_t i = 0; i < samples; ++i) { - - if(i != samples - 1) { - next = curve_points[i + 1]; - } - - // get a direction vector reflecting the approximate curvature (i.e. tangent) - IfcVector3 d = (current-previous) + (next-previous); - - d.Normalize(); - - // figure out an arbitrary point q so that (p-q) * d = 0, - // try to maximize ||(p-q)|| * ||(p_last-q_last)|| - IfcVector3 q; - bool take_any = false; - - for (unsigned int j = 0; j < 2; ++j, take_any = true) { - if ((last_dir == 0 || take_any) && std::abs(d.x) > ai_epsilon) { - q.y = startvec.y; - q.z = startvec.z; - q.x = -(d.y * q.y + d.z * q.z) / d.x; - last_dir = 0; - break; - } else if ((last_dir == 1 || take_any) && std::abs(d.y) > ai_epsilon) { - q.x = startvec.x; - q.z = startvec.z; - q.y = -(d.x * q.x + d.z * q.z) / d.y; - last_dir = 1; - break; - } else if ((last_dir == 2 && std::abs(d.z) > ai_epsilon) || take_any) { - q.y = startvec.y; - q.x = startvec.x; - q.z = -(d.y * q.y + d.x * q.x) / d.z; - last_dir = 2; - break; - } - } - - q *= solid.Radius / q.Length(); - startvec = q; - - // generate a rotation matrix to rotate q around d - IfcMatrix4 rot; - IfcMatrix4::Rotation(deltaAngle,d,rot); - - for (unsigned int seg = 0; seg < cnt_segments; ++seg, q *= rot ) { - points.push_back(q + current); - } - - previous = current; - current = next; - } - - // make quads - for(size_t i = 0; i < samples - 1; ++i) { - - const aiVector3D& this_start = points[ i * cnt_segments ]; - - // locate corresponding point on next sample ring - unsigned int best_pair_offset = 0; - float best_distance_squared = 1e10f; - for (unsigned int seg = 0; seg < cnt_segments; ++seg) { - const aiVector3D& p = points[ (i+1) * cnt_segments + seg]; - const float l = (p-this_start).SquareLength(); - - if(l < best_distance_squared) { - best_pair_offset = seg; - best_distance_squared = l; - } - } - - for (unsigned int seg = 0; seg < cnt_segments; ++seg) { - - result.mVerts.push_back(points[ i * cnt_segments + (seg % cnt_segments)]); - result.mVerts.push_back(points[ i * cnt_segments + (seg + 1) % cnt_segments]); - result.mVerts.push_back(points[ (i+1) * cnt_segments + ((seg + 1 + best_pair_offset) % cnt_segments)]); - result.mVerts.push_back(points[ (i+1) * cnt_segments + ((seg + best_pair_offset) % cnt_segments)]); - - IfcVector3& v1 = *(result.mVerts.end()-1); - IfcVector3& v2 = *(result.mVerts.end()-2); - IfcVector3& v3 = *(result.mVerts.end()-3); - IfcVector3& v4 = *(result.mVerts.end()-4); - - if (((v4-v3) ^ (v4-v1)) * (v4 - curve_points[i]) < 0.0f) { - std::swap(v4, v1); - std::swap(v3, v2); - } - - result.mVertcnt.push_back(4); - } - } - - IFCImporter::LogVerboseDebug("generate mesh procedurally by sweeping a disk along a curve (IfcSweptDiskSolid)"); -} - -// ------------------------------------------------------------------------------------------------ -IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh, bool& ok, IfcVector3& norOut) -{ - const std::vector& out = curmesh.mVerts; - IfcMatrix3 m; - - ok = true; - - // The input "mesh" must be a single polygon - const size_t s = out.size(); - ai_assert( curmesh.mVertcnt.size() == 1 ); - ai_assert( curmesh.mVertcnt.back() == s); - - const IfcVector3 any_point = out[s-1]; - IfcVector3 nor; - - // The input polygon is arbitrarily shaped, therefore we might need some tries - // until we find a suitable normal. Note that Newell's algorithm would give - // a more robust result, but this variant also gives us a suitable first - // axis for the 2D coordinate space on the polygon plane, exploiting the - // fact that the input polygon is nearly always a quad. - bool done = false; - size_t idx( 0 ); - for (size_t i = 0; !done && i < s-2; done || ++i) { - idx = i; - for (size_t j = i+1; j < s-1; ++j) { - nor = -((out[i]-any_point)^(out[j]-any_point)); - if(std::fabs(nor.Length()) > 1e-8f) { - done = true; - break; - } - } - } - - if(!done) { - ok = false; - return m; - } - - nor.Normalize(); - norOut = nor; - - IfcVector3 r = (out[idx]-any_point); - r.Normalize(); - - //if(d) { - // *d = -any_point * nor; - //} - - // Reconstruct orthonormal basis - // XXX use Gram Schmidt for increased robustness - IfcVector3 u = r ^ nor; - u.Normalize(); - - m.a1 = r.x; - m.a2 = r.y; - m.a3 = r.z; - - m.b1 = u.x; - m.b2 = u.y; - m.b3 = u.z; - - m.c1 = -nor.x; - m.c2 = -nor.y; - m.c3 = -nor.z; - - return m; -} - -const auto closeDistance = ai_epsilon; - -bool areClose(Schema_2x3::IfcCartesianPoint pt1,Schema_2x3::IfcCartesianPoint pt2) { - if(pt1.Coordinates.size() != pt2.Coordinates.size()) - { - IFCImporter::LogWarn("unable to compare differently-dimensioned points"); - return false; - } - auto coord1 = pt1.Coordinates.begin(); - auto coord2 = pt2.Coordinates.begin(); - // we're just testing each dimension separately rather than doing euclidean distance, as we're - // looking for very close coordinates - for(; coord1 != pt1.Coordinates.end(); coord1++,coord2++) - { - if(std::fabs(*coord1 - *coord2) > closeDistance) - return false; - } - return true; -} - -bool areClose(IfcVector3 pt1,IfcVector3 pt2) { - return (std::fabs(pt1.x - pt2.x) < closeDistance && - std::fabs(pt1.y - pt2.y) < closeDistance && - std::fabs(pt1.z - pt2.z) < closeDistance); -} -// Extrudes the given polygon along the direction, converts it into an opening or applies all openings as necessary. -void ProcessExtrudedArea(const Schema_2x3::IfcExtrudedAreaSolid& solid, const TempMesh& curve, - const IfcVector3& extrusionDir, TempMesh& result, ConversionData &conv, bool collect_openings) -{ - // Outline: 'curve' is now a list of vertex points forming the underlying profile, extrude along the given axis, - // forming new triangles. - const bool has_area = solid.SweptArea->ProfileType == "AREA" && curve.mVerts.size() > 2; - if (solid.Depth < ai_epsilon) { - if( has_area ) { - result.Append(curve); - } - return; - } - - result.mVerts.reserve(curve.mVerts.size()*(has_area ? 4 : 2)); - result.mVertcnt.reserve(curve.mVerts.size() + 2); - std::vector in = curve.mVerts; - - // First step: transform all vertices into the target coordinate space - IfcMatrix4 trafo; - ConvertAxisPlacement(trafo, solid.Position); - - IfcVector3 vmin, vmax; - MinMaxChooser()(vmin, vmax); - for(IfcVector3& v : in) { - v *= trafo; - - vmin = std::min(vmin, v); - vmax = std::max(vmax, v); - } - - vmax -= vmin; - const IfcFloat diag = vmax.Length(); - IfcVector3 dir = IfcMatrix3(trafo) * extrusionDir; - - // reverse profile polygon if it's winded in the wrong direction in relation to the extrusion direction - IfcVector3 profileNormal = TempMesh::ComputePolygonNormal(in.data(), in.size()); - if( profileNormal * dir < 0.0 ) - std::reverse(in.begin(), in.end()); - - std::vector nors; - const bool openings = !!conv.apply_openings && conv.apply_openings->size(); - - // Compute the normal vectors for all opening polygons as a prerequisite - // to TryAddOpenings_Poly2Tri() - // XXX this belongs into the aforementioned function - if( openings ) { - - if( !conv.settings.useCustomTriangulation ) { - // it is essential to apply the openings in the correct spatial order. The direction - // doesn't matter, but we would screw up if we started with e.g. a door in between - // two windows. - std::sort(conv.apply_openings->begin(), conv.apply_openings->end(), TempOpening::DistanceSorter(in[0])); - } - - nors.reserve(conv.apply_openings->size()); - for(TempOpening& t : *conv.apply_openings) { - TempMesh& bounds = *t.profileMesh.get(); - - if( bounds.mVerts.size() <= 2 ) { - nors.push_back(IfcVector3()); - continue; - } - auto nor = ((bounds.mVerts[2] - bounds.mVerts[0]) ^ (bounds.mVerts[1] - bounds.mVerts[0])).Normalize(); - auto vI0 = bounds.mVertcnt[0]; - for(size_t faceI = 0; faceI < bounds.mVertcnt.size(); faceI++) - { - if(bounds.mVertcnt[faceI] >= 3) { - // do a check that this is at least parallel to the base plane - auto nor2 = ((bounds.mVerts[vI0 + 2] - bounds.mVerts[vI0]) ^ (bounds.mVerts[vI0 + 1] - bounds.mVerts[vI0])).Normalize(); - if(!areClose(nor,nor2)) { - std::stringstream msg; - msg << "Face " << faceI << " is not parallel with face 0 - opening on entity " << solid.GetID(); - IFCImporter::LogWarn(msg.str().c_str()); - } - } - } - nors.push_back(nor); - } - } - - - TempMesh temp; - TempMesh& curmesh = openings ? temp : result; - std::vector& out = curmesh.mVerts; - - size_t sides_with_openings = 0; - for( size_t i = 0; i < in.size(); ++i ) { - const size_t next = (i + 1) % in.size(); - - curmesh.mVertcnt.push_back(4); - - out.push_back(in[i]); - out.push_back(in[next]); - out.push_back(in[next] + dir); - out.push_back(in[i] + dir); - - if( openings ) { - if( (in[i] - in[next]).Length() > diag * 0.1 && GenerateOpenings(*conv.apply_openings, temp, true, true, dir) ) { - ++sides_with_openings; - } - - result.Append(temp); - temp.Clear(); - } - } - - if(openings) { - for(TempOpening& opening : *conv.apply_openings) { - if(!opening.wallPoints.empty()) { - std::stringstream msg; - msg << "failed to generate all window caps on ID " << (int)solid.GetID(); - IFCImporter::LogError(msg.str().c_str()); - } - opening.wallPoints.clear(); - } - } - - size_t sides_with_v_openings = 0; - if(has_area) { - - for(size_t n = 0; n < 2; ++n) { - if(n > 0) { - for(size_t i = 0; i < in.size(); ++i) - out.push_back(in[i] + dir); - } - else { - for(size_t i = in.size(); i--; ) - out.push_back(in[i]); - } - - curmesh.mVertcnt.push_back(static_cast(in.size())); - if(openings && in.size() > 2) { - if(GenerateOpenings(*conv.apply_openings,temp,true,true,dir)) { - ++sides_with_v_openings; - } - - result.Append(temp); - temp.Clear(); - } - } - } - - if (openings && (sides_with_openings == 1 || sides_with_v_openings == 2)) { - std::stringstream msg; - msg << "failed to resolve all openings, presumably their topology is not supported by Assimp - ID " << solid.GetID() << " sides_with_openings " << sides_with_openings << " sides_with_v_openings " << sides_with_v_openings; - IFCImporter::LogWarn(msg.str().c_str()); - } - - IFCImporter::LogVerboseDebug("generate mesh procedurally by extrusion (IfcExtrudedAreaSolid)"); - - // If this is an opening element, store both the extruded mesh and the 2D profile mesh - // it was created from. Return an empty mesh to the caller. - if( collect_openings && !result.IsEmpty() ) { - ai_assert(conv.collect_openings); - std::shared_ptr profile = std::shared_ptr(new TempMesh()); - profile->Swap(result); - - std::shared_ptr profile2D = std::shared_ptr(new TempMesh()); - profile2D->mVerts.insert(profile2D->mVerts.end(), in.begin(), in.end()); - profile2D->mVertcnt.push_back(static_cast(in.size())); - conv.collect_openings->push_back(TempOpening(&solid, dir, profile, profile2D)); - - ai_assert(result.IsEmpty()); - } -} - -// ------------------------------------------------------------------------------------------------ -void ProcessExtrudedAreaSolid(const Schema_2x3::IfcExtrudedAreaSolid& solid, TempMesh& result, - ConversionData& conv, bool collect_openings) -{ - TempMesh meshout; - - // First read the profile description. - if(!ProcessProfile(*solid.SweptArea,meshout,conv) || meshout.mVerts.size()<=1) { - return; - } - - IfcVector3 dir; - ConvertDirection(dir,solid.ExtrudedDirection); - dir *= solid.Depth; - - // Some profiles bring their own holes, for which we need to provide a container. This all is somewhat backwards, - // and there's still so many corner cases uncovered - we really need a generic solution to all of this hole carving. - std::vector fisherPriceMyFirstOpenings; - std::vector* oldApplyOpenings = conv.apply_openings; - if( const Schema_2x3::IfcArbitraryProfileDefWithVoids* const cprofile = solid.SweptArea->ToPtr() ) { - if( !cprofile->InnerCurves.empty() ) { - // read all inner curves and extrude them to form proper openings. - std::vector* oldCollectOpenings = conv.collect_openings; - conv.collect_openings = &fisherPriceMyFirstOpenings; - - for (const Schema_2x3::IfcCurve* curve : cprofile->InnerCurves) { - TempMesh curveMesh, tempMesh; - ProcessCurve(*curve, curveMesh, conv); - ProcessExtrudedArea(solid, curveMesh, dir, tempMesh, conv, true); - } - // and then apply those to the geometry we're about to generate - conv.apply_openings = conv.collect_openings; - conv.collect_openings = oldCollectOpenings; - } - } - - ProcessExtrudedArea(solid, meshout, dir, result, conv, collect_openings); - conv.apply_openings = oldApplyOpenings; -} - -// ------------------------------------------------------------------------------------------------ -void ProcessSweptAreaSolid(const Schema_2x3::IfcSweptAreaSolid& swept, TempMesh& meshout, - ConversionData& conv) -{ - if(const Schema_2x3::IfcExtrudedAreaSolid* const solid = swept.ToPtr()) { - ProcessExtrudedAreaSolid(*solid,meshout,conv, !!conv.collect_openings); - } - else if(const Schema_2x3::IfcRevolvedAreaSolid* const rev = swept.ToPtr()) { - ProcessRevolvedAreaSolid(*rev,meshout,conv); - } - else { - IFCImporter::LogWarn("skipping unknown IfcSweptAreaSolid entity, type is ", swept.GetClassName()); - } -} - -// ------------------------------------------------------------------------------------------------ -bool ProcessGeometricItem(const Schema_2x3::IfcRepresentationItem& geo, unsigned int matid, std::set& mesh_indices, - ConversionData& conv) -{ - bool fix_orientation = false; - std::shared_ptr< TempMesh > meshtmp = std::make_shared(); - if(const Schema_2x3::IfcShellBasedSurfaceModel* shellmod = geo.ToPtr()) { - for (const std::shared_ptr &shell : shellmod->SbsmBoundary) { - try { - const ::Assimp::STEP::EXPRESS::ENTITY& e = shell->To<::Assimp::STEP::EXPRESS::ENTITY>(); - const Schema_2x3::IfcConnectedFaceSet& fs = conv.db.MustGetObject(e).To(); - - ProcessConnectedFaceSet(fs,*meshtmp.get(),conv); - } - catch(std::bad_cast&) { - IFCImporter::LogWarn("unexpected type error, IfcShell ought to inherit from IfcConnectedFaceSet"); - } - } - fix_orientation = true; - } - else if(const Schema_2x3::IfcConnectedFaceSet* fset = geo.ToPtr()) { - ProcessConnectedFaceSet(*fset,*meshtmp.get(),conv); - fix_orientation = true; - } - else if(const Schema_2x3::IfcSweptAreaSolid* swept = geo.ToPtr()) { - ProcessSweptAreaSolid(*swept,*meshtmp.get(),conv); - } - else if(const Schema_2x3::IfcSweptDiskSolid* disk = geo.ToPtr()) { - ProcessSweptDiskSolid(*disk,*meshtmp.get(),conv); - } - else if(const Schema_2x3::IfcManifoldSolidBrep* brep = geo.ToPtr()) { - ProcessConnectedFaceSet(brep->Outer,*meshtmp.get(),conv); - fix_orientation = true; - } - else if(const Schema_2x3::IfcFaceBasedSurfaceModel* surf = geo.ToPtr()) { - for(const Schema_2x3::IfcConnectedFaceSet& fc : surf->FbsmFaces) { - ProcessConnectedFaceSet(fc,*meshtmp.get(),conv); - } - fix_orientation = true; - } - else if(const Schema_2x3::IfcBooleanResult* boolean = geo.ToPtr()) { - ProcessBoolean(*boolean,*meshtmp.get(),conv); - } - else if(geo.ToPtr()) { - // silently skip over bounding boxes - return false; - } - else { - std::stringstream toLog; - toLog << "skipping unknown IfcGeometricRepresentationItem entity, type is " << geo.GetClassName() << " id is " << geo.GetID(); - IFCImporter::LogWarn(toLog.str().c_str()); - return false; - } - - // Do we just collect openings for a parent element (i.e. a wall)? - // In such a case, we generate the polygonal mesh as usual, - // but attach it to a TempOpening instance which will later be applied - // to the wall it pertains to. - - // Note: swep area solids are added in ProcessExtrudedAreaSolid(), - // which returns an empty mesh. - if(conv.collect_openings) { - if (!meshtmp->IsEmpty()) { - conv.collect_openings->push_back(TempOpening(geo.ToPtr(), - IfcVector3(0,0,0), - meshtmp, - std::shared_ptr())); - } - return true; - } - - if (meshtmp->IsEmpty()) { - return false; - } - - meshtmp->RemoveAdjacentDuplicates(); - meshtmp->RemoveDegenerates(); - - if(fix_orientation) { -// meshtmp->FixupFaceOrientation(); - } - - aiMesh* const mesh = meshtmp->ToMesh(); - if(mesh) { - mesh->mMaterialIndex = matid; - mesh_indices.insert(static_cast(conv.meshes.size())); - conv.meshes.push_back(mesh); - return true; - } - return false; -} - -// ------------------------------------------------------------------------------------------------ -void AssignAddedMeshes(std::set& mesh_indices,aiNode* nd, - ConversionData& /*conv*/) -{ - if (!mesh_indices.empty()) { - std::set::const_iterator it = mesh_indices.cbegin(); - std::set::const_iterator end = mesh_indices.cend(); - - nd->mNumMeshes = static_cast(mesh_indices.size()); - - nd->mMeshes = new unsigned int[nd->mNumMeshes]; - for(unsigned int i = 0; it != end && i < nd->mNumMeshes; ++i, ++it) { - nd->mMeshes[i] = *it; - } - } -} - -// ------------------------------------------------------------------------------------------------ -bool TryQueryMeshCache(const Schema_2x3::IfcRepresentationItem& item, - std::set& mesh_indices, unsigned int mat_index, - ConversionData& conv) -{ - ConversionData::MeshCacheIndex idx(&item, mat_index); - ConversionData::MeshCache::const_iterator it = conv.cached_meshes.find(idx); - if (it != conv.cached_meshes.end()) { - std::copy((*it).second.begin(),(*it).second.end(),std::inserter(mesh_indices, mesh_indices.end())); - return true; - } - return false; -} - -// ------------------------------------------------------------------------------------------------ -void PopulateMeshCache(const Schema_2x3::IfcRepresentationItem& item, - const std::set& mesh_indices, unsigned int mat_index, - ConversionData& conv) -{ - ConversionData::MeshCacheIndex idx(&item, mat_index); - conv.cached_meshes[idx] = mesh_indices; -} - -// ------------------------------------------------------------------------------------------------ -bool ProcessRepresentationItem(const Schema_2x3::IfcRepresentationItem& item, unsigned int matid, - std::set& mesh_indices, - ConversionData& conv) -{ - // determine material - unsigned int localmatid = ProcessMaterials(item.GetID(), matid, conv, true); - - if (!TryQueryMeshCache(item,mesh_indices,localmatid,conv)) { - if(ProcessGeometricItem(item,localmatid,mesh_indices,conv)) { - if(mesh_indices.size()) { - PopulateMeshCache(item,mesh_indices,localmatid,conv); - } - } - else return false; - } - return true; -} - - -} // ! IFC -} // ! Assimp - -#endif diff --git a/libs/assimp/code/AssetLib/IFC/IFCLoader.cpp b/libs/assimp/code/AssetLib/IFC/IFCLoader.cpp deleted file mode 100644 index 0c20686..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCLoader.cpp +++ /dev/null @@ -1,931 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFCLoad.cpp - * @brief Implementation of the Industry Foundation Classes loader. - */ - -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER - -#include -#include -#include - -#ifndef ASSIMP_BUILD_NO_COMPRESSED_IFC -#ifdef ASSIMP_USE_HUNTER -#include -#else -#include -#endif -#endif - -#include "../STEPParser/STEPFileReader.h" -#include "IFCLoader.h" - -#include "IFCUtil.h" - -#include -#include -#include -#include - -namespace Assimp { -template <> -const char *LogFunctions::Prefix() { - static auto prefix = "IFC: "; - return prefix; -} -} // namespace Assimp - -using namespace Assimp; -using namespace Assimp::Formatter; -using namespace Assimp::IFC; - -/* DO NOT REMOVE this comment block. The genentitylist.sh script - * just looks for names adhering to the IfcSomething naming scheme - * and includes all matches in the whitelist for code-generation. Thus, - * all entity classes that are only indirectly referenced need to be - * mentioned explicitly. - - IfcRepresentationMap - IfcProductRepresentation - IfcUnitAssignment - IfcClosedShell - IfcDoor - - */ - -namespace { - -// forward declarations -void SetUnits(ConversionData &conv); -void SetCoordinateSpace(ConversionData &conv); -void ProcessSpatialStructures(ConversionData &conv); -void MakeTreeRelative(ConversionData &conv); -void ConvertUnit(const ::Assimp::STEP::EXPRESS::DataType &dt, ConversionData &conv); - -} // namespace - -static const aiImporterDesc desc = { - "Industry Foundation Classes (IFC) Importer", - "", - "", - "", - aiImporterFlags_SupportBinaryFlavour, - 0, - 0, - 0, - 0, - "ifc ifczip step stp" -}; - -// ------------------------------------------------------------------------------------------------ -// Constructor to be privately used by Importer -IFCImporter::IFCImporter() {} - -// ------------------------------------------------------------------------------------------------ -// Destructor, private as well -IFCImporter::~IFCImporter() { -} - -// ------------------------------------------------------------------------------------------------ -// Returns whether the class can handle the format of the given file. -bool IFCImporter::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool /*checkSig*/) const { - // note: this is the common identification for STEP-encoded files, so - // it is only unambiguous as long as we don't support any further - // file formats with STEP as their encoding. - static const char *tokens[] = { "ISO-10303-21" }; - return SearchFileHeaderForToken(pIOHandler, pFile, tokens, AI_COUNT_OF(tokens)); -} - -// ------------------------------------------------------------------------------------------------ -// List all extensions handled by this loader -const aiImporterDesc *IFCImporter::GetInfo() const { - return &desc; -} - -// ------------------------------------------------------------------------------------------------ -// Setup configuration properties for the loader -void IFCImporter::SetupProperties(const Importer *pImp) { - settings.skipSpaceRepresentations = pImp->GetPropertyBool(AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS, true); - settings.useCustomTriangulation = pImp->GetPropertyBool(AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION, true); - settings.conicSamplingAngle = std::min(std::max((float)pImp->GetPropertyFloat(AI_CONFIG_IMPORT_IFC_SMOOTHING_ANGLE, AI_IMPORT_IFC_DEFAULT_SMOOTHING_ANGLE), 5.0f), 120.0f); - settings.cylindricalTessellation = std::min(std::max(pImp->GetPropertyInteger(AI_CONFIG_IMPORT_IFC_CYLINDRICAL_TESSELLATION, AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION), 3), 180); - settings.skipAnnotations = true; -} - -// ------------------------------------------------------------------------------------------------ -// Imports the given file into the given scene structure. -void IFCImporter::InternReadFile(const std::string &pFile, aiScene *pScene, IOSystem *pIOHandler) { - std::shared_ptr stream(pIOHandler->Open(pFile)); - if (!stream) { - ThrowException("Could not open file for reading"); - } - - // if this is a ifczip file, decompress its contents first - if (GetExtension(pFile) == "ifczip") { -#ifndef ASSIMP_BUILD_NO_COMPRESSED_IFC - unzFile zip = unzOpen(pFile.c_str()); - if (zip == nullptr) { - ThrowException("Could not open ifczip file for reading, unzip failed"); - } - - // chop 'zip' postfix - std::string fileName = pFile.substr(0, pFile.length() - 3); - - std::string::size_type s = pFile.find_last_of('\\'); - if (s == std::string::npos) { - s = pFile.find_last_of('/'); - } - if (s != std::string::npos) { - fileName = fileName.substr(s + 1); - } - - // search file (same name as the IFCZIP except for the file extension) and place file pointer there - if (UNZ_OK == unzGoToFirstFile(zip)) { - do { - // get file size, etc. - unz_file_info fileInfo; - char filename[256]; - unzGetCurrentFileInfo(zip, &fileInfo, filename, sizeof(filename), 0, 0, 0, 0); - if (GetExtension(filename) != "ifc") { - continue; - } - uint8_t *buff = new uint8_t[fileInfo.uncompressed_size]; - LogInfo("Decompressing IFCZIP file"); - unzOpenCurrentFile(zip); - size_t total = 0; - int read = 0; - do { - int bufferSize = fileInfo.uncompressed_size < INT16_MAX ? fileInfo.uncompressed_size : INT16_MAX; - void *buffer = malloc(bufferSize); - read = unzReadCurrentFile(zip, buffer, bufferSize); - if (read > 0) { - memcpy((char *)buff + total, buffer, read); - total += read; - } - free(buffer); - } while (read > 0); - size_t filesize = fileInfo.uncompressed_size; - if (total == 0 || size_t(total) != filesize) { - delete[] buff; - ThrowException("Failed to decompress IFC ZIP file"); - } - unzCloseCurrentFile(zip); - stream.reset(new MemoryIOStream(buff, fileInfo.uncompressed_size, true)); - if (unzGoToNextFile(zip) == UNZ_END_OF_LIST_OF_FILE) { - ThrowException("Found no IFC file member in IFCZIP file (1)"); - } - break; - - } while (true); - } else { - ThrowException("Found no IFC file member in IFCZIP file (2)"); - } - - unzClose(zip); -#else - ThrowException("Could not open ifczip file for reading, assimp was built without ifczip support"); -#endif - } - - std::unique_ptr db(STEP::ReadFileHeader(stream)); - const STEP::HeaderInfo &head = static_cast(*db).GetHeader(); - - if (!head.fileSchema.size() || head.fileSchema.substr(0, 3) != "IFC") { - ThrowException("Unrecognized file schema: " + head.fileSchema); - } - - if (!DefaultLogger::isNullLogger()) { - LogDebug("File schema is \'", head.fileSchema, '\''); - if (head.timestamp.length()) { - LogDebug("Timestamp \'", head.timestamp, '\''); - } - if (head.app.length()) { - LogDebug("Application/Exporter identline is \'", head.app, '\''); - } - } - - // obtain a copy of the machine-generated IFC scheme - ::Assimp::STEP::EXPRESS::ConversionSchema schema; - Schema_2x3::GetSchema(schema); - - // tell the reader which entity types to track with special care - static const char *const types_to_track[] = { - "ifcsite", "ifcbuilding", "ifcproject" - }; - - // tell the reader for which types we need to simulate STEPs reverse indices - static const char *const inverse_indices_to_track[] = { - "ifcrelcontainedinspatialstructure", "ifcrelaggregates", "ifcrelvoidselement", "ifcreldefinesbyproperties", "ifcpropertyset", "ifcstyleditem" - }; - - // feed the IFC schema into the reader and pre-parse all lines - STEP::ReadFile(*db, schema, types_to_track, inverse_indices_to_track); - const STEP::LazyObject *proj = db->GetObject("ifcproject"); - if (!proj) { - ThrowException("missing IfcProject entity"); - } - - ConversionData conv(*db, proj->To(), pScene, settings); - SetUnits(conv); - SetCoordinateSpace(conv); - ProcessSpatialStructures(conv); - MakeTreeRelative(conv); - -// NOTE - this is a stress test for the importer, but it works only -// in a build with no entities disabled. See -// scripts/IFCImporter/CPPGenerator.py -// for more information. -#ifdef ASSIMP_IFC_TEST - db->EvaluateAll(); -#endif - - // do final data copying - if (conv.meshes.size()) { - pScene->mNumMeshes = static_cast(conv.meshes.size()); - pScene->mMeshes = new aiMesh *[pScene->mNumMeshes](); - std::copy(conv.meshes.begin(), conv.meshes.end(), pScene->mMeshes); - - // needed to keep the d'tor from burning us - conv.meshes.clear(); - } - - if (conv.materials.size()) { - pScene->mNumMaterials = static_cast(conv.materials.size()); - pScene->mMaterials = new aiMaterial *[pScene->mNumMaterials](); - std::copy(conv.materials.begin(), conv.materials.end(), pScene->mMaterials); - - // needed to keep the d'tor from burning us - conv.materials.clear(); - } - - // apply world coordinate system (which includes the scaling to convert to meters and a -90 degrees rotation around x) - aiMatrix4x4 scale, rot; - aiMatrix4x4::Scaling(static_cast(IfcVector3(conv.len_scale)), scale); - aiMatrix4x4::RotationX(-AI_MATH_HALF_PI_F, rot); - - pScene->mRootNode->mTransformation = rot * scale * conv.wcs * pScene->mRootNode->mTransformation; - - // this must be last because objects are evaluated lazily as we process them - if (!DefaultLogger::isNullLogger()) { - LogDebug("STEP: evaluated ", db->GetEvaluatedObjectCount(), " object records"); - } -} - -namespace { - -// ------------------------------------------------------------------------------------------------ -void ConvertUnit(const Schema_2x3::IfcNamedUnit &unit, ConversionData &conv) { - if (const Schema_2x3::IfcSIUnit *const si = unit.ToPtr()) { - if (si->UnitType == "LENGTHUNIT") { - conv.len_scale = si->Prefix ? ConvertSIPrefix(si->Prefix) : 1.f; - IFCImporter::LogDebug("got units used for lengths"); - } - if (si->UnitType == "PLANEANGLEUNIT") { - if (si->Name != "RADIAN") { - IFCImporter::LogWarn("expected base unit for angles to be radian"); - } - } - } else if (const Schema_2x3::IfcConversionBasedUnit *const convu = unit.ToPtr()) { - if (convu->UnitType == "PLANEANGLEUNIT") { - try { - conv.angle_scale = convu->ConversionFactor->ValueComponent->To<::Assimp::STEP::EXPRESS::REAL>(); - ConvertUnit(*convu->ConversionFactor->UnitComponent, conv); - IFCImporter::LogDebug("got units used for angles"); - } catch (std::bad_cast &) { - IFCImporter::LogError("skipping unknown IfcConversionBasedUnit.ValueComponent entry - expected REAL"); - } - } - } -} - -// ------------------------------------------------------------------------------------------------ -void ConvertUnit(const ::Assimp::STEP::EXPRESS::DataType &dt, ConversionData &conv) { - try { - const ::Assimp::STEP::EXPRESS::ENTITY &e = dt.To<::Assimp::STEP::EXPRESS::ENTITY>(); - - const Schema_2x3::IfcNamedUnit &unit = e.ResolveSelect(conv.db); - if (unit.UnitType != "LENGTHUNIT" && unit.UnitType != "PLANEANGLEUNIT") { - return; - } - - ConvertUnit(unit, conv); - } catch (std::bad_cast &) { - // not entity, somehow - IFCImporter::LogError("skipping unknown IfcUnit entry - expected entity"); - } -} - -// ------------------------------------------------------------------------------------------------ -void SetUnits(ConversionData &conv) { - // see if we can determine the coordinate space used to express. - for (size_t i = 0; i < conv.proj.UnitsInContext->Units.size(); ++i) { - ConvertUnit(*conv.proj.UnitsInContext->Units[i], conv); - } -} - -// ------------------------------------------------------------------------------------------------ -void SetCoordinateSpace(ConversionData &conv) { - const Schema_2x3::IfcRepresentationContext *fav = nullptr; - for (const Schema_2x3::IfcRepresentationContext &v : conv.proj.RepresentationContexts) { - fav = &v; - // Model should be the most suitable type of context, hence ignore the others - if (v.ContextType && v.ContextType.Get() == "Model") { - break; - } - } - if (fav) { - if (const Schema_2x3::IfcGeometricRepresentationContext *const geo = fav->ToPtr()) { - ConvertAxisPlacement(conv.wcs, *geo->WorldCoordinateSystem, conv); - IFCImporter::LogDebug("got world coordinate system"); - } - } -} - -// ------------------------------------------------------------------------------------------------ -void ResolveObjectPlacement(aiMatrix4x4 &m, const Schema_2x3::IfcObjectPlacement &place, ConversionData &conv) { - if (const Schema_2x3::IfcLocalPlacement *const local = place.ToPtr()) { - IfcMatrix4 tmp; - ConvertAxisPlacement(tmp, *local->RelativePlacement, conv); - - m = static_cast(tmp); - - if (local->PlacementRelTo) { - aiMatrix4x4 tmpM; - ResolveObjectPlacement(tmpM, local->PlacementRelTo.Get(), conv); - m = tmpM * m; - } - } else { - IFCImporter::LogWarn("skipping unknown IfcObjectPlacement entity, type is ", place.GetClassName()); - } -} - -// ------------------------------------------------------------------------------------------------ -bool ProcessMappedItem(const Schema_2x3::IfcMappedItem &mapped, aiNode *nd_src, std::vector &subnodes_src, unsigned int matid, ConversionData &conv) { - // insert a custom node here, the carthesian transform operator is simply a conventional transformation matrix - std::unique_ptr nd(new aiNode()); - nd->mName.Set("IfcMappedItem"); - - // handle the Cartesian operator - IfcMatrix4 m; - ConvertTransformOperator(m, *mapped.MappingTarget); - - IfcMatrix4 msrc; - ConvertAxisPlacement(msrc, *mapped.MappingSource->MappingOrigin, conv); - - msrc = m * msrc; - - std::set meshes; - const size_t old_openings = conv.collect_openings ? conv.collect_openings->size() : 0; - if (conv.apply_openings) { - IfcMatrix4 minv = msrc; - minv.Inverse(); - for (TempOpening &open : *conv.apply_openings) { - open.Transform(minv); - } - } - - unsigned int localmatid = ProcessMaterials(mapped.GetID(), matid, conv, false); - const Schema_2x3::IfcRepresentation &repr = mapped.MappingSource->MappedRepresentation; - - bool got = false; - for (const Schema_2x3::IfcRepresentationItem &item : repr.Items) { - if (!ProcessRepresentationItem(item, localmatid, meshes, conv)) { - IFCImporter::LogWarn("skipping mapped entity of type ", item.GetClassName(), ", no representations could be generated"); - } else - got = true; - } - - if (!got) { - return false; - } - - AssignAddedMeshes(meshes, nd.get(), conv); - if (conv.collect_openings) { - - // if this pass serves us only to collect opening geometry, - // make sure we transform the TempMesh's which we need to - // preserve as well. - if (const size_t diff = conv.collect_openings->size() - old_openings) { - for (size_t i = 0; i < diff; ++i) { - (*conv.collect_openings)[old_openings + i].Transform(msrc); - } - } - } - - nd->mTransformation = nd_src->mTransformation * static_cast(msrc); - subnodes_src.push_back(nd.release()); - - return true; -} - -// ------------------------------------------------------------------------------------------------ -struct RateRepresentationPredicate { - int Rate(const Schema_2x3::IfcRepresentation *r) const { - // the smaller, the better - - if (!r->RepresentationIdentifier) { - // neutral choice if no extra information is specified - return 0; - } - - const std::string &name = r->RepresentationIdentifier.Get(); - if (name == "MappedRepresentation") { - if (!r->Items.empty()) { - // take the first item and base our choice on it - const Schema_2x3::IfcMappedItem *const m = r->Items.front()->ToPtr(); - if (m) { - return Rate(m->MappingSource->MappedRepresentation); - } - } - return 100; - } - - return Rate(name); - } - - int Rate(const std::string &r) const { - if (r == "SolidModel") { - return -3; - } - - // give strong preference to extruded geometry. - if (r == "SweptSolid") { - return -10; - } - - if (r == "Clipping") { - return -5; - } - - // 'Brep' is difficult to get right due to possible voids in the - // polygon boundaries, so take it only if we are forced to (i.e. - // if the only alternative is (non-clipping) boolean operations, - // which are not supported at all). - if (r == "Brep") { - return -2; - } - - // Curves, bounding boxes - those will most likely not be loaded - // as we can't make any use out of this data. So consider them - // last. - if (r == "BoundingBox" || r == "Curve2D") { - return 100; - } - return 0; - } - - bool operator()(const Schema_2x3::IfcRepresentation *a, const Schema_2x3::IfcRepresentation *b) const { - return Rate(a) < Rate(b); - } -}; - -// ------------------------------------------------------------------------------------------------ -void ProcessProductRepresentation(const Schema_2x3::IfcProduct &el, aiNode *nd, std::vector &subnodes, ConversionData &conv) { - if (!el.Representation) { - return; - } - - // extract Color from metadata, if present - unsigned int matid = ProcessMaterials(el.GetID(), std::numeric_limits::max(), conv, false); - std::set meshes; - - // we want only one representation type, so bring them in a suitable order (i.e try those - // that look as if we could read them quickly at first). This way of reading - // representation is relatively generic and allows the concrete implementations - // for the different representation types to make some sensible choices what - // to load and what not to load. - const STEP::ListOf, 1, 0> &src = el.Representation.Get()->Representations; - std::vector repr_ordered(src.size()); - std::copy(src.begin(), src.end(), repr_ordered.begin()); - std::sort(repr_ordered.begin(), repr_ordered.end(), RateRepresentationPredicate()); - for (const Schema_2x3::IfcRepresentation *repr : repr_ordered) { - bool res = false; - for (const Schema_2x3::IfcRepresentationItem &item : repr->Items) { - if (const Schema_2x3::IfcMappedItem *const geo = item.ToPtr()) { - res = ProcessMappedItem(*geo, nd, subnodes, matid, conv) || res; - } else { - res = ProcessRepresentationItem(item, matid, meshes, conv) || res; - } - } - // if we got something meaningful at this point, skip any further representations - if (res) { - break; - } - } - AssignAddedMeshes(meshes, nd, conv); -} - -typedef std::map Metadata; - -// ------------------------------------------------------------------------------------------------ -void ProcessMetadata(const Schema_2x3::ListOf, 1, 0> &set, ConversionData &conv, Metadata &properties, - const std::string &prefix = std::string(), - unsigned int nest = 0) { - for (const Schema_2x3::IfcProperty &property : set) { - const std::string &key = prefix.length() > 0 ? (prefix + "." + property.Name) : property.Name; - if (const Schema_2x3::IfcPropertySingleValue *const singleValue = property.ToPtr()) { - if (singleValue->NominalValue) { - if (const ::Assimp::STEP::EXPRESS::STRING *str = singleValue->NominalValue.Get()->ToPtr<::Assimp::STEP::EXPRESS::STRING>()) { - std::string value = static_cast(*str); - properties[key] = value; - } else if (const ::Assimp::STEP::EXPRESS::REAL *val1 = singleValue->NominalValue.Get()->ToPtr<::Assimp::STEP::EXPRESS::REAL>()) { - float value = static_cast(*val1); - std::stringstream s; - s << value; - properties[key] = s.str(); - } else if (const ::Assimp::STEP::EXPRESS::INTEGER *val2 = singleValue->NominalValue.Get()->ToPtr<::Assimp::STEP::EXPRESS::INTEGER>()) { - int64_t curValue = static_cast(*val2); - std::stringstream s; - s << curValue; - properties[key] = s.str(); - } - } - } else if (const Schema_2x3::IfcPropertyListValue *const listValue = property.ToPtr()) { - std::stringstream ss; - ss << "["; - unsigned index = 0; - for (const Schema_2x3::IfcValue::Out &v : listValue->ListValues) { - if (!v) continue; - if (const ::Assimp::STEP::EXPRESS::STRING *str = v->ToPtr<::Assimp::STEP::EXPRESS::STRING>()) { - std::string value = static_cast(*str); - ss << "'" << value << "'"; - } else if (const ::Assimp::STEP::EXPRESS::REAL *val1 = v->ToPtr<::Assimp::STEP::EXPRESS::REAL>()) { - float value = static_cast(*val1); - ss << value; - } else if (const ::Assimp::STEP::EXPRESS::INTEGER *val2 = v->ToPtr<::Assimp::STEP::EXPRESS::INTEGER>()) { - int64_t value = static_cast(*val2); - ss << value; - } - if (index + 1 < listValue->ListValues.size()) { - ss << ","; - } - index++; - } - ss << "]"; - properties[key] = ss.str(); - } else if (const Schema_2x3::IfcComplexProperty *const complexProp = property.ToPtr()) { - if (nest > 2) { // mostly arbitrary limit to prevent stack overflow vulnerabilities - IFCImporter::LogError("maximum nesting level for IfcComplexProperty reached, skipping this property."); - } else { - ProcessMetadata(complexProp->HasProperties, conv, properties, key, nest + 1); - } - } else { - properties[key] = std::string(); - } - } -} - -// ------------------------------------------------------------------------------------------------ -void ProcessMetadata(uint64_t relDefinesByPropertiesID, ConversionData &conv, Metadata &properties) { - if (const Schema_2x3::IfcRelDefinesByProperties *const pset = conv.db.GetObject(relDefinesByPropertiesID)->ToPtr()) { - if (const Schema_2x3::IfcPropertySet *const set = conv.db.GetObject(pset->RelatingPropertyDefinition->GetID())->ToPtr()) { - ProcessMetadata(set->HasProperties, conv, properties); - } - } -} - -// ------------------------------------------------------------------------------------------------ -aiNode *ProcessSpatialStructure(aiNode *parent, const Schema_2x3::IfcProduct &el, ConversionData &conv, - std::vector *collect_openings = nullptr) { - const STEP::DB::RefMap &refs = conv.db.GetRefs(); - - // skip over space and annotation nodes - usually, these have no meaning in Assimp's context - bool skipGeometry = false; - if (conv.settings.skipSpaceRepresentations) { - if (el.ToPtr()) { - IFCImporter::LogVerboseDebug("skipping IfcSpace entity due to importer settings"); - skipGeometry = true; - } - } - - if (conv.settings.skipAnnotations) { - if (el.ToPtr()) { - IFCImporter::LogVerboseDebug("skipping IfcAnnotation entity due to importer settings"); - return nullptr; - } - } - - // add an output node for this spatial structure - aiNode *nd(new aiNode); - nd->mName.Set(el.GetClassName() + "_" + (el.Name ? el.Name.Get() : "Unnamed") + "_" + el.GlobalId); - nd->mParent = parent; - - conv.already_processed.insert(el.GetID()); - - // check for node metadata - STEP::DB::RefMapRange children = refs.equal_range(el.GetID()); - if (children.first != refs.end()) { - Metadata properties; - if (children.first == children.second) { - // handles single property set - ProcessMetadata((*children.first).second, conv, properties); - } else { - // handles multiple property sets (currently all property sets are merged, - // which may not be the best solution in the long run) - for (STEP::DB::RefMap::const_iterator it = children.first; it != children.second; ++it) { - ProcessMetadata((*it).second, conv, properties); - } - } - - if (!properties.empty()) { - aiMetadata *data = aiMetadata::Alloc(static_cast(properties.size())); - unsigned int index(0); - for (const Metadata::value_type &kv : properties) { - data->Set(index++, kv.first, aiString(kv.second)); - } - nd->mMetaData = data; - } - } - - if (el.ObjectPlacement) { - ResolveObjectPlacement(nd->mTransformation, el.ObjectPlacement.Get(), conv); - } - - std::vector openings; - - IfcMatrix4 myInv; - bool didinv = false; - - // convert everything contained directly within this structure, - // this may result in more nodes. - std::vector subnodes; - try { - // locate aggregates and 'contained-in-here'-elements of this spatial structure and add them in recursively - // on our way, collect openings in *this* element - STEP::DB::RefMapRange range = refs.equal_range(el.GetID()); - - for (STEP::DB::RefMapRange range2 = range; range2.first != range.second; ++range2.first) { - // skip over meshes that have already been processed before. This is strictly necessary - // because the reverse indices also include references contained in argument lists and - // therefore every element has a back-reference hold by its parent. - if (conv.already_processed.find((*range2.first).second) != conv.already_processed.end()) { - continue; - } - const STEP::LazyObject &obj = conv.db.MustGetObject((*range2.first).second); - - // handle regularly-contained elements - if (const Schema_2x3::IfcRelContainedInSpatialStructure *const cont = obj->ToPtr()) { - if (cont->RelatingStructure->GetID() != el.GetID()) { - continue; - } - for (const Schema_2x3::IfcProduct &pro : cont->RelatedElements) { - if (pro.ToPtr()) { - // IfcOpeningElement is handled below. Sadly we can't use it here as is: - // The docs say that opening elements are USUALLY attached to building storey, - // but we want them for the building elements to which they belong. - continue; - } - - aiNode *const ndnew = ProcessSpatialStructure(nd, pro, conv, nullptr); - if (ndnew) { - subnodes.push_back(ndnew); - } - } - } - // handle openings, which we collect in a list rather than adding them to the node graph - else if (const Schema_2x3::IfcRelVoidsElement *const fills = obj->ToPtr()) { - if (fills->RelatingBuildingElement->GetID() == el.GetID()) { - const Schema_2x3::IfcFeatureElementSubtraction &open = fills->RelatedOpeningElement; - - // move opening elements to a separate node since they are semantically different than elements that are just 'contained' - std::unique_ptr nd_aggr(new aiNode()); - nd_aggr->mName.Set("$RelVoidsElement"); - nd_aggr->mParent = nd; - - nd_aggr->mTransformation = nd->mTransformation; - - std::vector openings_local; - aiNode *const ndnew = ProcessSpatialStructure(nd_aggr.get(), open, conv, &openings_local); - if (ndnew) { - - nd_aggr->mNumChildren = 1; - nd_aggr->mChildren = new aiNode *[1](); - - nd_aggr->mChildren[0] = ndnew; - - if (openings_local.size()) { - if (!didinv) { - myInv = aiMatrix4x4(nd->mTransformation).Inverse(); - didinv = true; - } - - // we need all openings to be in the local space of *this* node, so transform them - for (TempOpening &op : openings_local) { - op.Transform(myInv * nd_aggr->mChildren[0]->mTransformation); - openings.push_back(op); - } - } - subnodes.push_back(nd_aggr.release()); - } - } - } - } - - for (; range.first != range.second; ++range.first) { - // see note in loop above - if (conv.already_processed.find((*range.first).second) != conv.already_processed.end()) { - continue; - } - if (const Schema_2x3::IfcRelAggregates *const aggr = conv.db.GetObject((*range.first).second)->ToPtr()) { - if (aggr->RelatingObject->GetID() != el.GetID()) { - continue; - } - - // move aggregate elements to a separate node since they are semantically different than elements that are just 'contained' - std::unique_ptr nd_aggr(new aiNode()); - nd_aggr->mName.Set("$RelAggregates"); - nd_aggr->mParent = nd; - - nd_aggr->mTransformation = nd->mTransformation; - - nd_aggr->mChildren = new aiNode *[aggr->RelatedObjects.size()](); - for (const Schema_2x3::IfcObjectDefinition &def : aggr->RelatedObjects) { - if (const Schema_2x3::IfcProduct *const prod = def.ToPtr()) { - - aiNode *const ndnew = ProcessSpatialStructure(nd_aggr.get(), *prod, conv, nullptr); - if (ndnew) { - nd_aggr->mChildren[nd_aggr->mNumChildren++] = ndnew; - } - } - } - - subnodes.push_back(nd_aggr.release()); - } - } - - conv.collect_openings = collect_openings; - if (!conv.collect_openings) { - conv.apply_openings = &openings; - } - - if (!skipGeometry) { - ProcessProductRepresentation(el, nd, subnodes, conv); - conv.apply_openings = conv.collect_openings = nullptr; - } - - if (subnodes.size()) { - nd->mChildren = new aiNode *[subnodes.size()](); - for (aiNode *nd2 : subnodes) { - nd->mChildren[nd->mNumChildren++] = nd2; - nd2->mParent = nd; - } - } - } catch (...) { - // it hurts, but I don't want to pull boost::ptr_vector into -noboost only for these few spots here - std::for_each(subnodes.begin(), subnodes.end(), delete_fun()); - throw; - } - - ai_assert(conv.already_processed.find(el.GetID()) != conv.already_processed.end()); - conv.already_processed.erase(conv.already_processed.find(el.GetID())); - return nd; -} - -// ------------------------------------------------------------------------------------------------ -void ProcessSpatialStructures(ConversionData &conv) { - // XXX add support for multiple sites (i.e. IfcSpatialStructureElements with composition == COMPLEX) - - // process all products in the file. it is reasonable to assume that a - // file that is relevant for us contains at least a site or a building. - const STEP::DB::ObjectMapByType &map = conv.db.GetObjectsByType(); - - ai_assert(map.find("ifcsite") != map.end()); - const STEP::DB::ObjectSet *range = &map.find("ifcsite")->second; - - if (range->empty()) { - ai_assert(map.find("ifcbuilding") != map.end()); - range = &map.find("ifcbuilding")->second; - if (range->empty()) { - // no site, no building - fail; - IFCImporter::ThrowException("no root element found (expected IfcBuilding or preferably IfcSite)"); - } - } - - std::vector nodes; - - for (const STEP::LazyObject *lz : *range) { - const Schema_2x3::IfcSpatialStructureElement *const prod = lz->ToPtr(); - if (!prod) { - continue; - } - IFCImporter::LogVerboseDebug("looking at spatial structure `", (prod->Name ? prod->Name.Get() : "unnamed"), "`", (prod->ObjectType ? " which is of type " + prod->ObjectType.Get() : "")); - - // the primary sites are referenced by an IFCRELAGGREGATES element which assigns them to the IFCPRODUCT - const STEP::DB::RefMap &refs = conv.db.GetRefs(); - STEP::DB::RefMapRange ref_range = refs.equal_range(conv.proj.GetID()); - for (; ref_range.first != ref_range.second; ++ref_range.first) { - if (const Schema_2x3::IfcRelAggregates *const aggr = conv.db.GetObject((*ref_range.first).second)->ToPtr()) { - - for (const Schema_2x3::IfcObjectDefinition &def : aggr->RelatedObjects) { - // comparing pointer values is not sufficient, we would need to cast them to the same type first - // as there is multiple inheritance in the game. - if (def.GetID() == prod->GetID()) { - IFCImporter::LogVerboseDebug("selecting this spatial structure as root structure"); - // got it, this is one primary site. - nodes.push_back(ProcessSpatialStructure(nullptr, *prod, conv, nullptr)); - } - } - } - } - } - - size_t nb_nodes = nodes.size(); - - if (nb_nodes == 0) { - IFCImporter::LogWarn("failed to determine primary site element, taking all the IfcSite"); - for (const STEP::LazyObject *lz : *range) { - const Schema_2x3::IfcSpatialStructureElement *const prod = lz->ToPtr(); - if (!prod) { - continue; - } - - nodes.push_back(ProcessSpatialStructure(nullptr, *prod, conv, nullptr)); - } - - nb_nodes = nodes.size(); - } - - if (nb_nodes == 1) { - conv.out->mRootNode = nodes[0]; - } else if (nb_nodes > 1) { - conv.out->mRootNode = new aiNode("Root"); - conv.out->mRootNode->mParent = nullptr; - conv.out->mRootNode->mNumChildren = static_cast(nb_nodes); - conv.out->mRootNode->mChildren = new aiNode *[conv.out->mRootNode->mNumChildren]; - - for (size_t i = 0; i < nb_nodes; ++i) { - aiNode *node = nodes[i]; - - node->mParent = conv.out->mRootNode; - - conv.out->mRootNode->mChildren[i] = node; - } - } else { - IFCImporter::ThrowException("failed to determine primary site element"); - } -} - -// ------------------------------------------------------------------------------------------------ -void MakeTreeRelative(aiNode *start, const aiMatrix4x4 &combined) { - // combined is the parent's absolute transformation matrix - const aiMatrix4x4 old = start->mTransformation; - - if (!combined.IsIdentity()) { - start->mTransformation = aiMatrix4x4(combined).Inverse() * start->mTransformation; - } - - // All nodes store absolute transformations right now, so we need to make them relative - for (unsigned int i = 0; i < start->mNumChildren; ++i) { - MakeTreeRelative(start->mChildren[i], old); - } -} - -// ------------------------------------------------------------------------------------------------ -void MakeTreeRelative(ConversionData &conv) { - MakeTreeRelative(conv.out->mRootNode, IfcMatrix4()); -} - -} // namespace - -#endif diff --git a/libs/assimp/code/AssetLib/IFC/IFCLoader.h b/libs/assimp/code/AssetLib/IFC/IFCLoader.h deleted file mode 100644 index 7b2c3aa..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCLoader.h +++ /dev/null @@ -1,116 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFC.h - * @brief Declaration of the Industry Foundation Classes (IFC) loader main class - */ -#ifndef INCLUDED_AI_IFC_LOADER_H -#define INCLUDED_AI_IFC_LOADER_H - -#include -#include - -namespace Assimp { - -// TinyFormatter.h -namespace Formatter { - -template -class basic_formatter; -typedef class basic_formatter, std::allocator> format; - -} // namespace Formatter - -namespace STEP { - -class DB; - -} - -// ------------------------------------------------------------------------------------------- -/** Load the IFC format, which is an open specification to describe building and construction - industry data. - - See http://en.wikipedia.org/wiki/Industry_Foundation_Classes -*/ -// ------------------------------------------------------------------------------------------- -class IFCImporter : public BaseImporter, public LogFunctions { -public: - // loader settings, publicly accessible via their corresponding AI_CONFIG constants - struct Settings { - Settings() : - skipSpaceRepresentations(), useCustomTriangulation(), skipAnnotations(), conicSamplingAngle(10.f), cylindricalTessellation(32) {} - - bool skipSpaceRepresentations; - bool useCustomTriangulation; - bool skipAnnotations; - float conicSamplingAngle; - int cylindricalTessellation; - }; - - IFCImporter(); - ~IFCImporter() override; - - // -------------------- - bool CanRead(const std::string &pFile, - IOSystem *pIOHandler, - bool checkSig) const override; - -protected: - // -------------------- - const aiImporterDesc *GetInfo() const override; - - // -------------------- - void SetupProperties(const Importer *pImp) override; - - // -------------------- - void InternReadFile(const std::string &pFile, - aiScene *pScene, - IOSystem *pIOHandler) override; - -private: - Settings settings; - -}; // !class IFCImporter - -} // end of namespace Assimp -#endif // !INCLUDED_AI_IFC_LOADER_H diff --git a/libs/assimp/code/AssetLib/IFC/IFCMaterial.cpp b/libs/assimp/code/AssetLib/IFC/IFCMaterial.cpp deleted file mode 100644 index 6cd0e59..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCMaterial.cpp +++ /dev/null @@ -1,202 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFCMaterial.cpp - * @brief Implementation of conversion routines to convert IFC materials to aiMaterial - */ - -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER - -#include "IFCUtil.h" -#include -#include - -namespace Assimp { -namespace IFC { - -// ------------------------------------------------------------------------------------------------ -static int ConvertShadingMode(const std::string& name) { - if (name == "BLINN") { - return aiShadingMode_Blinn; - } - else if (name == "FLAT" || name == "NOTDEFINED") { - return aiShadingMode_NoShading; - } - else if (name == "PHONG") { - return aiShadingMode_Phong; - } - IFCImporter::LogWarn("shading mode ", name, " not recognized by Assimp, using Phong instead"); - return aiShadingMode_Phong; -} - -// ------------------------------------------------------------------------------------------------ -static void FillMaterial(aiMaterial* mat,const IFC::Schema_2x3::IfcSurfaceStyle* surf,ConversionData& conv) { - aiString name; - name.Set((surf->Name? surf->Name.Get() : "IfcSurfaceStyle_Unnamed")); - mat->AddProperty(&name,AI_MATKEY_NAME); - - // now see which kinds of surface information are present - for (const std::shared_ptr &sel2 : surf->Styles) { - if (const IFC::Schema_2x3::IfcSurfaceStyleShading* shade = sel2->ResolveSelectPtr(conv.db)) { - aiColor4D col_base,col; - - ConvertColor(col_base, shade->SurfaceColour); - mat->AddProperty(&col_base,1, AI_MATKEY_COLOR_DIFFUSE); - - if (const IFC::Schema_2x3::IfcSurfaceStyleRendering* ren = shade->ToPtr()) { - - if (ren->Transparency) { - const float t = 1.f-static_cast(ren->Transparency.Get()); - mat->AddProperty(&t,1, AI_MATKEY_OPACITY); - } - - if (ren->DiffuseColour) { - ConvertColor(col, *ren->DiffuseColour.Get(),conv,&col_base); - mat->AddProperty(&col,1, AI_MATKEY_COLOR_DIFFUSE); - } - - if (ren->SpecularColour) { - ConvertColor(col, *ren->SpecularColour.Get(),conv,&col_base); - mat->AddProperty(&col,1, AI_MATKEY_COLOR_SPECULAR); - } - - if (ren->TransmissionColour) { - ConvertColor(col, *ren->TransmissionColour.Get(),conv,&col_base); - mat->AddProperty(&col,1, AI_MATKEY_COLOR_TRANSPARENT); - } - - if (ren->ReflectionColour) { - ConvertColor(col, *ren->ReflectionColour.Get(),conv,&col_base); - mat->AddProperty(&col,1, AI_MATKEY_COLOR_REFLECTIVE); - } - - const int shading = (ren->SpecularHighlight && ren->SpecularColour)?ConvertShadingMode(ren->ReflectanceMethod):static_cast(aiShadingMode_Gouraud); - mat->AddProperty(&shading,1, AI_MATKEY_SHADING_MODEL); - - if (ren->SpecularHighlight) { - if(const ::Assimp::STEP::EXPRESS::REAL* rt = ren->SpecularHighlight.Get()->ToPtr<::Assimp::STEP::EXPRESS::REAL>()) { - // at this point we don't distinguish between the two distinct ways of - // specifying highlight intensities. leave this to the user. - const float e = static_cast(*rt); - mat->AddProperty(&e,1,AI_MATKEY_SHININESS); - } - else { - IFCImporter::LogWarn("unexpected type error, SpecularHighlight should be a REAL"); - } - } - } - } - } -} - -// ------------------------------------------------------------------------------------------------ -unsigned int ProcessMaterials(uint64_t id, unsigned int prevMatId, ConversionData& conv, bool forceDefaultMat) { - STEP::DB::RefMapRange range = conv.db.GetRefs().equal_range(id); - for(;range.first != range.second; ++range.first) { - if(const IFC::Schema_2x3::IfcStyledItem* const styled = conv.db.GetObject((*range.first).second)->ToPtr()) { - for(const IFC::Schema_2x3::IfcPresentationStyleAssignment& as : styled->Styles) { - for (const std::shared_ptr &sel : as.Styles) { - - if( const IFC::Schema_2x3::IfcSurfaceStyle* const surf = sel->ResolveSelectPtr(conv.db) ) { - // try to satisfy from cache - ConversionData::MaterialCache::iterator mit = conv.cached_materials.find(surf); - if( mit != conv.cached_materials.end() ) - return mit->second; - - // not found, create new material - const std::string side = static_cast(surf->Side); - if( side != "BOTH" ) { - IFCImporter::LogWarn("ignoring surface side marker on IFC::IfcSurfaceStyle: ", side); - } - - std::unique_ptr mat(new aiMaterial()); - - FillMaterial(mat.get(), surf, conv); - - conv.materials.push_back(mat.release()); - unsigned int matindex = static_cast(conv.materials.size() - 1); - conv.cached_materials[surf] = matindex; - return matindex; - } - } - } - } - } - - // no local material defined. If there's global one, use that instead - if ( prevMatId != std::numeric_limits::max() ) { - return prevMatId; - } - - // we're still here - create an default material if required, or simply fail otherwise - if ( !forceDefaultMat ) { - return std::numeric_limits::max(); - } - - aiString name; - name.Set(""); - // ConvertColorToString( color, name); - - // look if there's already a default material with this base color - for( size_t a = 0; a < conv.materials.size(); ++a ) { - aiString mname; - conv.materials[a]->Get(AI_MATKEY_NAME, mname); - if ( name == mname ) { - return ( unsigned int )a; - } - } - - // we're here, yet - no default material with suitable color available. Generate one - std::unique_ptr mat(new aiMaterial()); - mat->AddProperty(&name,AI_MATKEY_NAME); - - const aiColor4D col = aiColor4D( 0.6f, 0.6f, 0.6f, 1.0f); // aiColor4D( color.r, color.g, color.b, 1.0f); - mat->AddProperty(&col,1, AI_MATKEY_COLOR_DIFFUSE); - - conv.materials.push_back(mat.release()); - return (unsigned int) conv.materials.size() - 1; -} - -} // ! IFC -} // ! Assimp - -#endif // ASSIMP_BUILD_NO_IFC_IMPORTER diff --git a/libs/assimp/code/AssetLib/IFC/IFCOpenings.cpp b/libs/assimp/code/AssetLib/IFC/IFCOpenings.cpp deleted file mode 100644 index 7420019..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCOpenings.cpp +++ /dev/null @@ -1,1955 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFCOpenings.cpp - * @brief Implements a subset of Ifc CSG operations for pouring - * holes for windows and doors into walls. - */ - - -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER -#include "IFCUtil.h" -#include "Common/PolyTools.h" -#include "PostProcessing/ProcessHelper.h" - -#ifdef ASSIMP_USE_HUNTER -# include -# include -#else -# include "../contrib/poly2tri/poly2tri/poly2tri.h" -# include "../contrib/clipper/clipper.hpp" -#endif - -#include -#include -#include - -namespace Assimp { - namespace IFC { - - using ClipperLib::ulong64; - // XXX use full -+ range ... - const ClipperLib::long64 max_ulong64 = 1518500249; // clipper.cpp / hiRange var - - //#define to_int64(p) (static_cast( std::max( 0., std::min( static_cast((p)), 1.) ) * max_ulong64 )) -#define to_int64(p) (static_cast(static_cast((p) ) * max_ulong64 )) -#define from_int64(p) (static_cast((p)) / max_ulong64) -#define one_vec (IfcVector2(static_cast(1.0),static_cast(1.0))) - - - // fallback method to generate wall openings - bool TryAddOpenings_Poly2Tri(const std::vector& openings, - TempMesh& curmesh); - - -typedef std::pair< IfcVector2, IfcVector2 > BoundingBox; -typedef std::map XYSortedField; - - -// ------------------------------------------------------------------------------------------------ -void QuadrifyPart(const IfcVector2& pmin, const IfcVector2& pmax, XYSortedField& field, - const std::vector< BoundingBox >& bbs, - std::vector& out) -{ - if (!(pmin.x-pmax.x) || !(pmin.y-pmax.y)) { - return; - } - - IfcFloat xs = 1e10, xe = 1e10; - bool found = false; - - // Search along the x-axis until we find an opening - XYSortedField::iterator start = field.begin(); - for(; start != field.end(); ++start) { - const BoundingBox& bb = bbs[(*start).second]; - if(bb.first.x >= pmax.x) { - break; - } - - if (bb.second.x > pmin.x && bb.second.y > pmin.y && bb.first.y < pmax.y) { - xs = bb.first.x; - xe = bb.second.x; - found = true; - break; - } - } - - if (!found) { - // the rectangle [pmin,pend] is opaque, fill it - out.push_back(pmin); - out.push_back(IfcVector2(pmin.x,pmax.y)); - out.push_back(pmax); - out.push_back(IfcVector2(pmax.x,pmin.y)); - return; - } - - xs = std::max(pmin.x,xs); - xe = std::min(pmax.x,xe); - - // see if there's an offset to fill at the top of our quad - if (xs - pmin.x) { - out.push_back(pmin); - out.push_back(IfcVector2(pmin.x,pmax.y)); - out.push_back(IfcVector2(xs,pmax.y)); - out.push_back(IfcVector2(xs,pmin.y)); - } - - // search along the y-axis for all openings that overlap xs and our quad - IfcFloat ylast = pmin.y; - found = false; - for(; start != field.end(); ++start) { - const BoundingBox& bb = bbs[(*start).second]; - if (bb.first.x > xs || bb.first.y >= pmax.y) { - break; - } - - if (bb.second.y > ylast) { - - found = true; - const IfcFloat ys = std::max(bb.first.y,pmin.y), ye = std::min(bb.second.y,pmax.y); - if (ys - ylast > 0.0f) { - QuadrifyPart( IfcVector2(xs,ylast), IfcVector2(xe,ys) ,field,bbs,out); - } - - // the following are the window vertices - - /*wnd.push_back(IfcVector2(xs,ys)); - wnd.push_back(IfcVector2(xs,ye)); - wnd.push_back(IfcVector2(xe,ye)); - wnd.push_back(IfcVector2(xe,ys));*/ - ylast = ye; - } - } - if (!found) { - // the rectangle [pmin,pend] is opaque, fill it - out.push_back(IfcVector2(xs,pmin.y)); - out.push_back(IfcVector2(xs,pmax.y)); - out.push_back(IfcVector2(xe,pmax.y)); - out.push_back(IfcVector2(xe,pmin.y)); - return; - } - if (ylast < pmax.y) { - QuadrifyPart( IfcVector2(xs,ylast), IfcVector2(xe,pmax.y) ,field,bbs,out); - } - - // now for the whole rest - if (pmax.x-xe) { - QuadrifyPart(IfcVector2(xe,pmin.y), pmax ,field,bbs,out); - } -} - -typedef std::vector Contour; -typedef std::vector SkipList; // should probably use int for performance reasons - -struct ProjectedWindowContour -{ - Contour contour; - BoundingBox bb; - SkipList skiplist; - bool is_rectangular; - - - ProjectedWindowContour(const Contour& contour, const BoundingBox& bb, bool is_rectangular) - : contour(contour) - , bb(bb) - , is_rectangular(is_rectangular) - {} - - - bool IsInvalid() const { - return contour.empty(); - } - - void FlagInvalid() { - contour.clear(); - } - - void PrepareSkiplist() { - skiplist.resize(contour.size(),false); - } -}; - -typedef std::vector< ProjectedWindowContour > ContourVector; - -// ------------------------------------------------------------------------------------------------ -bool BoundingBoxesOverlapping( const BoundingBox &ibb, const BoundingBox &bb ) -{ - // count the '=' case as non-overlapping but as adjacent to each other - return ibb.first.x < bb.second.x && ibb.second.x > bb.first.x && - ibb.first.y < bb.second.y && ibb.second.y > bb.first.y; -} - -// ------------------------------------------------------------------------------------------------ -bool IsDuplicateVertex(const IfcVector2& vv, const std::vector& temp_contour) -{ - // sanity check for duplicate vertices - for(const IfcVector2& cp : temp_contour) { - if ((cp-vv).SquareLength() < 1e-5f) { - return true; - } - } - return false; -} - -// ------------------------------------------------------------------------------------------------ -void ExtractVerticesFromClipper(const ClipperLib::Polygon& poly, std::vector& temp_contour, - bool filter_duplicates = false) -{ - temp_contour.clear(); - for(const ClipperLib::IntPoint& point : poly) { - IfcVector2 vv = IfcVector2( from_int64(point.X), from_int64(point.Y)); - vv = std::max(vv,IfcVector2()); - vv = std::min(vv,one_vec); - - if (!filter_duplicates || !IsDuplicateVertex(vv, temp_contour)) { - temp_contour.push_back(vv); - } - } -} - -// ------------------------------------------------------------------------------------------------ -BoundingBox GetBoundingBox(const ClipperLib::Polygon& poly) -{ - IfcVector2 newbb_min, newbb_max; - MinMaxChooser()(newbb_min, newbb_max); - - for(const ClipperLib::IntPoint& point : poly) { - IfcVector2 vv = IfcVector2( from_int64(point.X), from_int64(point.Y)); - - // sanity rounding - vv = std::max(vv,IfcVector2()); - vv = std::min(vv,one_vec); - - newbb_min = std::min(newbb_min,vv); - newbb_max = std::max(newbb_max,vv); - } - return BoundingBox(newbb_min, newbb_max); -} - -// ------------------------------------------------------------------------------------------------ -void InsertWindowContours(const ContourVector& contours, - const std::vector& /*openings*/, - TempMesh& curmesh) -{ - // fix windows - we need to insert the real, polygonal shapes into the quadratic holes that we have now - for(size_t i = 0; i < contours.size();++i) { - const BoundingBox& bb = contours[i].bb; - const std::vector& contour = contours[i].contour; - if(contour.empty()) { - continue; - } - - // check if we need to do it at all - many windows just fit perfectly into their quadratic holes, - // i.e. their contours *are* already their bounding boxes. - if (contour.size() == 4) { - std::set verts; - for(size_t n = 0; n < 4; ++n) { - verts.insert(contour[n]); - } - const std::set::const_iterator end = verts.end(); - if (verts.find(bb.first)!=end && verts.find(bb.second)!=end - && verts.find(IfcVector2(bb.first.x,bb.second.y))!=end - && verts.find(IfcVector2(bb.second.x,bb.first.y))!=end - ) { - continue; - } - } - - const IfcFloat diag = (bb.first-bb.second).Length(); - const IfcFloat epsilon = diag/1000.f; - - // walk through all contour points and find those that lie on the BB corner - size_t last_hit = (size_t)-1, very_first_hit = (size_t)-1; - IfcVector2 edge; - for(size_t n = 0, e=0, size = contour.size();; n=(n+1)%size, ++e) { - - // sanity checking - if (e == size*2) { - IFCImporter::LogError("encountered unexpected topology while generating window contour"); - break; - } - - const IfcVector2& v = contour[n]; - - bool hit = false; - if (std::fabs(v.x-bb.first.x) n ? size-(last_hit-n) : n-last_hit; - for(size_t a = last_hit, ee = 0; ee <= cnt; a=(a+1)%size, ++ee) { - // hack: this is to fix cases where opening contours are self-intersecting. - // Clipper doesn't produce such polygons, but as soon as we're back in - // our brave new floating-point world, very small distances are consumed - // by the maximum available precision, leading to self-intersecting - // polygons. This fix makes concave windows fail even worse, but - // anyway, fail is fail. - if ((contour[a] - edge).SquareLength() > diag*diag*0.7) { - continue; - } - curmesh.mVerts.push_back(IfcVector3(contour[a].x, contour[a].y, 0.0f)); - } - - if (edge != contour[last_hit]) { - - IfcVector2 corner = edge; - - if (std::fabs(contour[last_hit].x-bb.first.x)(d)); - std::reverse(curmesh.mVerts.rbegin(),curmesh.mVerts.rbegin()+d); - } - if (n == very_first_hit) { - break; - } - } - else { - very_first_hit = n; - } - - last_hit = n; - } - } - } -} - -// ------------------------------------------------------------------------------------------------ -void MergeWindowContours (const std::vector& a, - const std::vector& b, - ClipperLib::ExPolygons& out) -{ - out.clear(); - - ClipperLib::Clipper clipper; - ClipperLib::Polygon clip; - - for(const IfcVector2& pip : a) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); - } - - if (ClipperLib::Orientation(clip)) { - std::reverse(clip.begin(), clip.end()); - } - - clipper.AddPolygon(clip, ClipperLib::ptSubject); - clip.clear(); - - for(const IfcVector2& pip : b) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); - } - - if (ClipperLib::Orientation(clip)) { - std::reverse(clip.begin(), clip.end()); - } - - clipper.AddPolygon(clip, ClipperLib::ptSubject); - clipper.Execute(ClipperLib::ctUnion, out,ClipperLib::pftNonZero,ClipperLib::pftNonZero); -} - -// ------------------------------------------------------------------------------------------------ -// Subtract a from b -void MakeDisjunctWindowContours (const std::vector& a, - const std::vector& b, - ClipperLib::ExPolygons& out) -{ - out.clear(); - - ClipperLib::Clipper clipper; - ClipperLib::Polygon clip; - - for(const IfcVector2& pip : a) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); - } - - if (ClipperLib::Orientation(clip)) { - std::reverse(clip.begin(), clip.end()); - } - - clipper.AddPolygon(clip, ClipperLib::ptClip); - clip.clear(); - - for(const IfcVector2& pip : b) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); - } - - if (ClipperLib::Orientation(clip)) { - std::reverse(clip.begin(), clip.end()); - } - - clipper.AddPolygon(clip, ClipperLib::ptSubject); - clipper.Execute(ClipperLib::ctDifference, out,ClipperLib::pftNonZero,ClipperLib::pftNonZero); -} - -// ------------------------------------------------------------------------------------------------ -void CleanupWindowContour(ProjectedWindowContour& window) -{ - std::vector scratch; - std::vector& contour = window.contour; - - ClipperLib::Polygon subject; - ClipperLib::Clipper clipper; - ClipperLib::ExPolygons clipped; - - for(const IfcVector2& pip : contour) { - subject.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); - } - - clipper.AddPolygon(subject,ClipperLib::ptSubject); - clipper.Execute(ClipperLib::ctUnion,clipped,ClipperLib::pftNonZero,ClipperLib::pftNonZero); - - // This should yield only one polygon or something went wrong - if (clipped.size() != 1) { - - // Empty polygon? drop the contour altogether - if(clipped.empty()) { - IFCImporter::LogError("error during polygon clipping, window contour is degenerate"); - window.FlagInvalid(); - return; - } - - // Else: take the first only - IFCImporter::LogError("error during polygon clipping, window contour is not convex"); - } - - ExtractVerticesFromClipper(clipped[0].outer, scratch); - // Assume the bounding box doesn't change during this operation -} - -// ------------------------------------------------------------------------------------------------ -void CleanupWindowContours(ContourVector& contours) -{ - // Use PolyClipper to clean up window contours - try { - for(ProjectedWindowContour& window : contours) { - CleanupWindowContour(window); - } - } - catch (const char* sx) { - IFCImporter::LogError("error during polygon clipping, window shape may be wrong: (Clipper: " - + std::string(sx) + ")"); - } -} - -// ------------------------------------------------------------------------------------------------ -void CleanupOuterContour(const std::vector& contour_flat, TempMesh& curmesh) -{ - std::vector vold; - std::vector iold; - - vold.reserve(curmesh.mVerts.size()); - iold.reserve(curmesh.mVertcnt.size()); - - // Fix the outer contour using polyclipper - try { - - ClipperLib::Polygon subject; - ClipperLib::Clipper clipper; - ClipperLib::ExPolygons clipped; - - ClipperLib::Polygon clip; - clip.reserve(contour_flat.size()); - for(const IfcVector2& pip : contour_flat) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); - } - - if (!ClipperLib::Orientation(clip)) { - std::reverse(clip.begin(), clip.end()); - } - - // We need to run polyclipper on every single polygon -- we can't run it one all - // of them at once or it would merge them all together which would undo all - // previous steps - subject.reserve(4); - size_t index = 0; - size_t countdown = 0; - for(const IfcVector3& pip : curmesh.mVerts) { - if (!countdown) { - countdown = curmesh.mVertcnt[index++]; - if (!countdown) { - continue; - } - } - subject.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); - if (--countdown == 0) { - if (!ClipperLib::Orientation(subject)) { - std::reverse(subject.begin(), subject.end()); - } - - clipper.AddPolygon(subject,ClipperLib::ptSubject); - clipper.AddPolygon(clip,ClipperLib::ptClip); - - clipper.Execute(ClipperLib::ctIntersection,clipped,ClipperLib::pftNonZero,ClipperLib::pftNonZero); - - for(const ClipperLib::ExPolygon& ex : clipped) { - iold.push_back(static_cast(ex.outer.size())); - for(const ClipperLib::IntPoint& point : ex.outer) { - vold.push_back(IfcVector3( - from_int64(point.X), - from_int64(point.Y), - 0.0f)); - } - } - - subject.clear(); - clipped.clear(); - clipper.Clear(); - } - } - } - catch (const char* sx) { - IFCImporter::LogError("Ifc: error during polygon clipping, wall contour line may be wrong: (Clipper: " - + std::string(sx) + ")"); - - return; - } - - // swap data arrays - std::swap(vold,curmesh.mVerts); - std::swap(iold,curmesh.mVertcnt); -} - -typedef std::vector OpeningRefs; -typedef std::vector OpeningRefVector; - -typedef std::vector -> ContourRefVector; - -// ------------------------------------------------------------------------------------------------ -bool BoundingBoxesAdjacent(const BoundingBox& bb, const BoundingBox& ibb) -{ - // TODO: I'm pretty sure there is a much more compact way to check this - const IfcFloat epsilon = Math::getEpsilon(); - return (std::fabs(bb.second.x - ibb.first.x) < epsilon && bb.first.y <= ibb.second.y && bb.second.y >= ibb.first.y) || - (std::fabs(bb.first.x - ibb.second.x) < epsilon && ibb.first.y <= bb.second.y && ibb.second.y >= bb.first.y) || - (std::fabs(bb.second.y - ibb.first.y) < epsilon && bb.first.x <= ibb.second.x && bb.second.x >= ibb.first.x) || - (std::fabs(bb.first.y - ibb.second.y) < epsilon && ibb.first.x <= bb.second.x && ibb.second.x >= bb.first.x); -} - -// ------------------------------------------------------------------------------------------------ -// Check if m0,m1 intersects n0,n1 assuming same ordering of the points in the line segments -// output the intersection points on n0,n1 -bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, - const IfcVector2& m0, const IfcVector2& m1, - IfcVector2& out0, IfcVector2& out1) -{ - const IfcVector2 n0_to_n1 = n1 - n0; - - const IfcVector2 n0_to_m0 = m0 - n0; - const IfcVector2 n1_to_m1 = m1 - n1; - - const IfcVector2 n0_to_m1 = m1 - n0; - - const IfcFloat e = 1e-5f; - const IfcFloat smalle = 1e-9f; - - static const IfcFloat inf = std::numeric_limits::infinity(); - - if (!(n0_to_m0.SquareLength() < e*e || std::fabs(n0_to_m0 * n0_to_n1) / (n0_to_m0.Length() * n0_to_n1.Length()) > 1-1e-5 )) { - return false; - } - - if (!(n1_to_m1.SquareLength() < e*e || std::fabs(n1_to_m1 * n0_to_n1) / (n1_to_m1.Length() * n0_to_n1.Length()) > 1-1e-5 )) { - return false; - } - - IfcFloat s0; - IfcFloat s1; - - // pick the axis with the higher absolute difference so the result - // is more accurate. Since we cannot guarantee that the axis with - // the higher absolute difference is big enough as to avoid - // divisions by zero, the case 0/0 ~ infinity is detected and - // handled separately. - if(std::fabs(n0_to_n1.x) > std::fabs(n0_to_n1.y)) { - s0 = n0_to_m0.x / n0_to_n1.x; - s1 = n0_to_m1.x / n0_to_n1.x; - - if (std::fabs(s0) == inf && std::fabs(n0_to_m0.x) < smalle) { - s0 = 0.; - } - if (std::fabs(s1) == inf && std::fabs(n0_to_m1.x) < smalle) { - s1 = 0.; - } - } - else { - s0 = n0_to_m0.y / n0_to_n1.y; - s1 = n0_to_m1.y / n0_to_n1.y; - - if (std::fabs(s0) == inf && std::fabs(n0_to_m0.y) < smalle) { - s0 = 0.; - } - if (std::fabs(s1) == inf && std::fabs(n0_to_m1.y) < smalle) { - s1 = 0.; - } - } - - if (s1 < s0) { - std::swap(s1,s0); - } - - s0 = std::max(0.0,s0); - s1 = std::max(0.0,s1); - - s0 = std::min(1.0,s0); - s1 = std::min(1.0,s1); - - if (std::fabs(s1-s0) < e) { - return false; - } - - out0 = n0 + s0 * n0_to_n1; - out1 = n0 + s1 * n0_to_n1; - - return true; -} - -// ------------------------------------------------------------------------------------------------ -void FindAdjacentContours(ContourVector::iterator current, const ContourVector& contours) -{ - const IfcFloat sqlen_epsilon = static_cast(Math::getEpsilon()); - const BoundingBox& bb = (*current).bb; - - // What is to be done here is to populate the skip lists for the contour - // and to add necessary padding points when needed. - SkipList& skiplist = (*current).skiplist; - - // First step to find possible adjacent contours is to check for adjacent bounding - // boxes. If the bounding boxes are not adjacent, the contours lines cannot possibly be. - for (ContourVector::const_iterator it = contours.begin(), end = contours.end(); it != end; ++it) { - if ((*it).IsInvalid()) { - continue; - } - - // this left here to make clear we also run on the current contour - // to check for overlapping contour segments (which can happen due - // to projection artifacts). - //if(it == current) { - // continue; - //} - - const bool is_me = it == current; - - const BoundingBox& ibb = (*it).bb; - - // Assumption: the bounding boxes are pairwise disjoint or identical - ai_assert(is_me || !BoundingBoxesOverlapping(bb, ibb)); - - if (is_me || BoundingBoxesAdjacent(bb, ibb)) { - - // Now do a each-against-everyone check for intersecting contour - // lines. This obviously scales terribly, but in typical real - // world Ifc files it will not matter since most windows that - // are adjacent to each others are rectangular anyway. - - Contour& ncontour = (*current).contour; - const Contour& mcontour = (*it).contour; - - for (size_t n = 0; n < ncontour.size(); ++n) { - const IfcVector2 n0 = ncontour[n]; - const IfcVector2 n1 = ncontour[(n+1) % ncontour.size()]; - - for (size_t m = 0, mend = (is_me ? n : mcontour.size()); m < mend; ++m) { - ai_assert(&mcontour != &ncontour || m < n); - - const IfcVector2 m0 = mcontour[m]; - const IfcVector2 m1 = mcontour[(m+1) % mcontour.size()]; - - IfcVector2 isect0, isect1; - if (IntersectingLineSegments(n0,n1, m0, m1, isect0, isect1)) { - - if ((isect0 - n0).SquareLength() > sqlen_epsilon) { - ++n; - - ncontour.insert(ncontour.begin() + n, isect0); - skiplist.insert(skiplist.begin() + n, true); - } - else { - skiplist[n] = true; - } - - if ((isect1 - n1).SquareLength() > sqlen_epsilon) { - ++n; - - ncontour.insert(ncontour.begin() + n, isect1); - skiplist.insert(skiplist.begin() + n, false); - } - } - } - } - } - } -} - -// ------------------------------------------------------------------------------------------------ -AI_FORCE_INLINE bool LikelyBorder(const IfcVector2& vdelta) -{ - const IfcFloat dot_point_epsilon = static_cast(Math::getEpsilon()); - return std::fabs(vdelta.x * vdelta.y) < dot_point_epsilon; -} - -// ------------------------------------------------------------------------------------------------ -void FindBorderContours(ContourVector::iterator current) -{ - const IfcFloat border_epsilon_upper = static_cast(1-1e-4); - const IfcFloat border_epsilon_lower = static_cast(1e-4); - - bool outer_border = false; - bool start_on_outer_border = false; - - SkipList& skiplist = (*current).skiplist; - IfcVector2 last_proj_point; - - const Contour::const_iterator cbegin = (*current).contour.begin(), cend = (*current).contour.end(); - - for (Contour::const_iterator cit = cbegin; cit != cend; ++cit) { - const IfcVector2& proj_point = *cit; - - // Check if this connection is along the outer boundary of the projection - // plane. In such a case we better drop it because such 'edges' should - // not have any geometry to close them (think of door openings). - if (proj_point.x <= border_epsilon_lower || proj_point.x >= border_epsilon_upper || - proj_point.y <= border_epsilon_lower || proj_point.y >= border_epsilon_upper) { - - if (outer_border) { - ai_assert(cit != cbegin); - if (LikelyBorder(proj_point - last_proj_point)) { - skiplist[std::distance(cbegin, cit) - 1] = true; - } - } - else if (cit == cbegin) { - start_on_outer_border = true; - } - - outer_border = true; - } - else { - outer_border = false; - } - - last_proj_point = proj_point; - } - - // handle last segment - if (outer_border && start_on_outer_border) { - const IfcVector2& proj_point = *cbegin; - if (LikelyBorder(proj_point - last_proj_point)) { - skiplist[skiplist.size()-1] = true; - } - } -} - -// ------------------------------------------------------------------------------------------------ -AI_FORCE_INLINE bool LikelyDiagonal(IfcVector2 vdelta) -{ - vdelta.x = std::fabs(vdelta.x); - vdelta.y = std::fabs(vdelta.y); - return (std::fabs(vdelta.x-vdelta.y) < 0.8 * std::max(vdelta.x, vdelta.y)); -} - -// ------------------------------------------------------------------------------------------------ -void FindLikelyCrossingLines(ContourVector::iterator current) -{ - SkipList& skiplist = (*current).skiplist; - IfcVector2 last_proj_point; - - const Contour::const_iterator cbegin = (*current).contour.begin(), cend = (*current).contour.end(); - for (Contour::const_iterator cit = cbegin; cit != cend; ++cit) { - const IfcVector2& proj_point = *cit; - - if (cit != cbegin) { - IfcVector2 vdelta = proj_point - last_proj_point; - if (LikelyDiagonal(vdelta)) { - skiplist[std::distance(cbegin, cit) - 1] = true; - } - } - - last_proj_point = proj_point; - } - - // handle last segment - if (LikelyDiagonal(*cbegin - last_proj_point)) { - skiplist[skiplist.size()-1] = true; - } -} - -// ------------------------------------------------------------------------------------------------ -size_t CloseWindows(ContourVector& contours, - const IfcMatrix4& minv, - OpeningRefVector& contours_to_openings, - TempMesh& curmesh) -{ - size_t closed = 0; - // For all contour points, check if one of the assigned openings does - // already have points assigned to it. In this case, assume this is - // the other side of the wall and generate connections between - // the two holes in order to close the window. - - // All this gets complicated by the fact that contours may pertain to - // multiple openings(due to merging of adjacent or overlapping openings). - // The code is based on the assumption that this happens symmetrically - // on both sides of the wall. If it doesn't (which would be a bug anyway) - // wrong geometry may be generated. - for (ContourVector::iterator it = contours.begin(), end = contours.end(); it != end; ++it) { - if ((*it).IsInvalid()) { - continue; - } - OpeningRefs& refs = contours_to_openings[std::distance(contours.begin(), it)]; - - bool has_other_side = false; - for(const TempOpening* opening : refs) { - if(!opening->wallPoints.empty()) { - has_other_side = true; - break; - } - } - - if (has_other_side) { - - ContourRefVector adjacent_contours; - - // prepare a skiplist for this contour. The skiplist is used to - // eliminate unwanted contour lines for adjacent windows and - // those bordering the outer frame. - (*it).PrepareSkiplist(); - - FindAdjacentContours(it, contours); - FindBorderContours(it); - - // if the window is the result of a finite union or intersection of rectangles, - // there shouldn't be any crossing or diagonal lines in it. Such lines would - // be artifacts caused by numerical inaccuracies or other bugs in polyclipper - // and our own code. Since rectangular openings are by far the most frequent - // case, it is worth filtering for this corner case. - if((*it).is_rectangular) { - FindLikelyCrossingLines(it); - } - - ai_assert((*it).skiplist.size() == (*it).contour.size()); - - SkipList::const_iterator skipbegin = (*it).skiplist.begin(); - - curmesh.mVerts.reserve(curmesh.mVerts.size() + (*it).contour.size() * 4); - curmesh.mVertcnt.reserve(curmesh.mVertcnt.size() + (*it).contour.size()); - - bool reverseCountourFaces = false; - - // compare base poly normal and contour normal to detect if we need to reverse the face winding - if(curmesh.mVertcnt.size() > 0) { - IfcVector3 basePolyNormal = TempMesh::ComputePolygonNormal(curmesh.mVerts.data(), curmesh.mVertcnt.front()); - - std::vector worldSpaceContourVtx(it->contour.size()); - - for(size_t a = 0; a < it->contour.size(); ++a) - worldSpaceContourVtx[a] = minv * IfcVector3(it->contour[a].x, it->contour[a].y, 0.0); - - IfcVector3 contourNormal = TempMesh::ComputePolygonNormal(worldSpaceContourVtx.data(), worldSpaceContourVtx.size()); - - reverseCountourFaces = (contourNormal * basePolyNormal) > 0.0; - } - - // XXX this algorithm is really a bit inefficient - both in terms - // of constant factor and of asymptotic runtime. - std::vector::const_iterator skipit = skipbegin; - - IfcVector3 start0; - IfcVector3 start1; - - const Contour::const_iterator cbegin = (*it).contour.begin(), cend = (*it).contour.end(); - - bool drop_this_edge = false; - for (Contour::const_iterator cit = cbegin; cit != cend; ++cit, drop_this_edge = *skipit++) { - const IfcVector2& proj_point = *cit; - - // Locate the closest opposite point. This should be a good heuristic to - // connect only the points that are really intended to be connected. - IfcFloat best = static_cast(1e10); - IfcVector3 bestv; - - const IfcVector3 world_point = minv * IfcVector3(proj_point.x,proj_point.y,0.0f); - - for(const TempOpening* opening : refs) { - for(const IfcVector3& other : opening->wallPoints) { - const IfcFloat sqdist = (world_point - other).SquareLength(); - - if (sqdist < best) { - // avoid self-connections - if(sqdist < 1e-5) { - continue; - } - - bestv = other; - best = sqdist; - } - } - } - - if (drop_this_edge) { - curmesh.mVerts.pop_back(); - curmesh.mVerts.pop_back(); - } - else { - curmesh.mVerts.push_back(((cit == cbegin) != reverseCountourFaces) ? world_point : bestv); - curmesh.mVerts.push_back(((cit == cbegin) != reverseCountourFaces) ? bestv : world_point); - - curmesh.mVertcnt.push_back(4); - ++closed; - } - - if (cit == cbegin) { - start0 = world_point; - start1 = bestv; - continue; - } - - curmesh.mVerts.push_back(reverseCountourFaces ? bestv : world_point); - curmesh.mVerts.push_back(reverseCountourFaces ? world_point : bestv); - - if (cit == cend - 1) { - drop_this_edge = *skipit; - - // Check if the final connection (last to first element) is itself - // a border edge that needs to be dropped. - if (drop_this_edge) { - --closed; - curmesh.mVertcnt.pop_back(); - curmesh.mVerts.pop_back(); - curmesh.mVerts.pop_back(); - } - else { - curmesh.mVerts.push_back(reverseCountourFaces ? start0 : start1); - curmesh.mVerts.push_back(reverseCountourFaces ? start1 : start0); - } - } - } - } - else { - - const Contour::const_iterator cbegin = (*it).contour.begin(), cend = (*it).contour.end(); - for(TempOpening* opening : refs) { - ai_assert(opening->wallPoints.empty()); - opening->wallPoints.reserve(opening->wallPoints.capacity() + (*it).contour.size()); - for (Contour::const_iterator cit = cbegin; cit != cend; ++cit) { - - const IfcVector2& proj_point = *cit; - opening->wallPoints.push_back(minv * IfcVector3(proj_point.x,proj_point.y,0.0f)); - } - } - } - } - return closed; -} - -// ------------------------------------------------------------------------------------------------ -void Quadrify(const std::vector< BoundingBox >& bbs, TempMesh& curmesh) -{ - ai_assert(curmesh.IsEmpty()); - - std::vector quads; - quads.reserve(bbs.size()*4); - - // sort openings by x and y axis as a preliminiary to the QuadrifyPart() algorithm - XYSortedField field; - for (std::vector::const_iterator it = bbs.begin(); it != bbs.end(); ++it) { - if (field.find((*it).first) != field.end()) { - IFCImporter::LogWarn("constraint failure during generation of wall openings, results may be faulty"); - } - field[(*it).first] = std::distance(bbs.begin(),it); - } - - QuadrifyPart(IfcVector2(),one_vec,field,bbs,quads); - ai_assert(!(quads.size() % 4)); - - curmesh.mVertcnt.resize(quads.size()/4,4); - curmesh.mVerts.reserve(quads.size()); - for(const IfcVector2& v2 : quads) { - curmesh.mVerts.push_back(IfcVector3(v2.x, v2.y, static_cast(0.0))); - } -} - -// ------------------------------------------------------------------------------------------------ -void Quadrify(const ContourVector& contours, TempMesh& curmesh) -{ - std::vector bbs; - bbs.reserve(contours.size()); - - for(const ContourVector::value_type& val : contours) { - bbs.push_back(val.bb); - } - - Quadrify(bbs, curmesh); -} - -// ------------------------------------------------------------------------------------------------ -IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh& in_mesh, - bool &ok, IfcVector3& nor_out) -{ - const std::vector& in_verts = in_mesh.mVerts; - ok = true; - - IfcMatrix4 m = IfcMatrix4(DerivePlaneCoordinateSpace(in_mesh, ok, nor_out)); - if(!ok) { - return IfcMatrix4(); - } -#ifdef ASSIMP_BUILD_DEBUG - const IfcFloat det = m.Determinant(); - ai_assert(std::fabs(det-1) < 1e-5); -#endif - - IfcFloat zcoord = 0; - out_contour.reserve(in_verts.size()); - - - IfcVector3 vmin, vmax; - MinMaxChooser()(vmin, vmax); - - // Project all points into the new coordinate system, collect min/max verts on the way - for(const IfcVector3& x : in_verts) { - const IfcVector3 vv = m * x; - // keep Z offset in the plane coordinate system. Ignoring precision issues - // (which are present, of course), this should be the same value for - // all polygon vertices (assuming the polygon is planar). - - // XXX this should be guarded, but we somehow need to pick a suitable - // epsilon - // if(coord != -1.0f) { - // assert(std::fabs(coord - vv.z) < 1e-3f); - // } - zcoord += vv.z; - vmin = std::min(vv, vmin); - vmax = std::max(vv, vmax); - - out_contour.push_back(IfcVector2(vv.x,vv.y)); - } - - zcoord /= in_verts.size(); - - // Further improve the projection by mapping the entire working set into - // [0,1] range. This gives us a consistent data range so all epsilons - // used below can be constants. - vmax -= vmin; - for(IfcVector2& vv : out_contour) { - vv.x = (vv.x - vmin.x) / vmax.x; - vv.y = (vv.y - vmin.y) / vmax.y; - - // sanity rounding - vv = std::max(vv,IfcVector2()); - vv = std::min(vv,one_vec); - } - - IfcMatrix4 mult; - mult.a1 = static_cast(1.0) / vmax.x; - mult.b2 = static_cast(1.0) / vmax.y; - - mult.a4 = -vmin.x * mult.a1; - mult.b4 = -vmin.y * mult.b2; - mult.c4 = -zcoord; - m = mult * m; - - // debug code to verify correctness -#ifdef ASSIMP_BUILD_DEBUG - std::vector out_contour2; - for(const IfcVector3& x : in_verts) { - const IfcVector3& vv = m * x; - - out_contour2.push_back(IfcVector2(vv.x,vv.y)); - ai_assert(std::fabs(vv.z) < vmax.z + 1e-8); - } - - for(size_t i = 0; i < out_contour.size(); ++i) { - ai_assert((out_contour[i] - out_contour2[i]).SquareLength() < ai_epsilon); - } -#endif - - return m; -} - -// ------------------------------------------------------------------------------------------------ -bool GenerateOpenings(std::vector& openings, - TempMesh& curmesh, - bool check_intersection, - bool generate_connection_geometry, - const IfcVector3& wall_extrusion_axis) -{ - OpeningRefVector contours_to_openings; - - // Try to derive a solid base plane within the current surface for use as - // working coordinate system. Map all vertices onto this plane and - // rescale them to [0,1] range. This normalization means all further - // epsilons need not be scaled. - bool ok = true; - - std::vector contour_flat; - - IfcVector3 nor; - const IfcMatrix4 m = ProjectOntoPlane(contour_flat, curmesh, ok, nor); - if(!ok) { - return false; - } - - // Obtain inverse transform for getting back to world space later on - const IfcMatrix4 minv = IfcMatrix4(m).Inverse(); - - // Compute bounding boxes for all 2D openings in projection space - ContourVector contours; - - std::vector temp_contour; - std::vector temp_contour2; - - IfcVector3 wall_extrusion_axis_norm = wall_extrusion_axis; - wall_extrusion_axis_norm.Normalize(); - - for(TempOpening& opening :openings) { - - // extrusionDir may be 0,0,0 on case where the opening mesh is not an - // IfcExtrudedAreaSolid but something else (i.e. a brep) - IfcVector3 norm_extrusion_dir = opening.extrusionDir; - if (norm_extrusion_dir.SquareLength() > 1e-10) { - norm_extrusion_dir.Normalize(); - } - else { - norm_extrusion_dir = IfcVector3(); - } - - TempMesh* profile_data = opening.profileMesh.get(); - bool is_2d_source = false; - if (opening.profileMesh2D && norm_extrusion_dir.SquareLength() > 0) { - if (std::fabs(norm_extrusion_dir * nor) > 0.9) { - profile_data = opening.profileMesh2D.get(); - is_2d_source = true; - } - } - std::vector profile_verts = profile_data->mVerts; - std::vector profile_vertcnts = profile_data->mVertcnt; - if(profile_verts.size() <= 2) { - continue; - } - - // The opening meshes are real 3D meshes so skip over all faces - // clearly facing into the wrong direction. Also, we need to check - // whether the meshes do actually intersect the base surface plane. - // This is done by recording minimum and maximum values for the - // d component of the plane equation for all polys and checking - // against surface d. - - // Use the sign of the dot product of the face normal to the plane - // normal to determine to which side of the difference mesh a - // triangle belongs. Get independent bounding boxes and vertex - // sets for both sides and take the better one (we can't just - // take both - this would likely cause major screwup of vertex - // winding, producing errors as late as in CloseWindows()). - IfcFloat dmin, dmax; - MinMaxChooser()(dmin,dmax); - - temp_contour.clear(); - temp_contour2.clear(); - - IfcVector2 vpmin,vpmax; - MinMaxChooser()(vpmin,vpmax); - - IfcVector2 vpmin2,vpmax2; - MinMaxChooser()(vpmin2,vpmax2); - - for (size_t f = 0, vi_total = 0, fend = profile_vertcnts.size(); f < fend; ++f) { - - bool side_flag = true; - if (!is_2d_source) { - const IfcVector3 face_nor = ((profile_verts[vi_total+2] - profile_verts[vi_total]) ^ - (profile_verts[vi_total+1] - profile_verts[vi_total])).Normalize(); - - const IfcFloat abs_dot_face_nor = std::abs(nor * face_nor); - if (abs_dot_face_nor < 0.9) { - vi_total += profile_vertcnts[f]; - continue; - } - - side_flag = nor * face_nor > 0; - } - - for (unsigned int vi = 0, vend = profile_vertcnts[f]; vi < vend; ++vi, ++vi_total) { - const IfcVector3& x = profile_verts[vi_total]; - - const IfcVector3 v = m * x; - IfcVector2 vv(v.x, v.y); - - //if(check_intersection) { - dmin = std::min(dmin, v.z); - dmax = std::max(dmax, v.z); - //} - - // sanity rounding - vv = std::max(vv,IfcVector2()); - vv = std::min(vv,one_vec); - - if(side_flag) { - vpmin = std::min(vpmin,vv); - vpmax = std::max(vpmax,vv); - } - else { - vpmin2 = std::min(vpmin2,vv); - vpmax2 = std::max(vpmax2,vv); - } - - std::vector& store = side_flag ? temp_contour : temp_contour2; - - if (!IsDuplicateVertex(vv, store)) { - store.push_back(vv); - } - } - } - - if (temp_contour2.size() > 2) { - ai_assert(!is_2d_source); - const IfcVector2 area = vpmax-vpmin; - const IfcVector2 area2 = vpmax2-vpmin2; - if (temp_contour.size() <= 2 || std::fabs(area2.x * area2.y) > std::fabs(area.x * area.y)) { - temp_contour.swap(temp_contour2); - - vpmax = vpmax2; - vpmin = vpmin2; - } - } - if(temp_contour.size() <= 2) { - continue; - } - - // TODO: This epsilon may be too large - const IfcFloat epsilon = std::fabs(dmax-dmin) * 0.0001; - if (!is_2d_source && check_intersection && (0 < dmin-epsilon || 0 > dmax+epsilon)) { - continue; - } - - BoundingBox bb = BoundingBox(vpmin,vpmax); - - // Skip over very small openings - these are likely projection errors - // (i.e. they don't belong to this side of the wall) - if(std::fabs(vpmax.x - vpmin.x) * std::fabs(vpmax.y - vpmin.y) < static_cast(1e-10)) { - continue; - } - std::vector joined_openings(1, &opening); - - bool is_rectangle = temp_contour.size() == 4; - - // See if this BB intersects or is in close adjacency to any other BB we have so far. - for (ContourVector::iterator it = contours.begin(); it != contours.end(); ) { - const BoundingBox& ibb = (*it).bb; - - if (BoundingBoxesOverlapping(ibb, bb)) { - - if (!(*it).is_rectangular) { - is_rectangle = false; - } - - const std::vector& other = (*it).contour; - ClipperLib::ExPolygons poly; - - // First check whether subtracting the old contour (to which ibb belongs) - // from the new contour (to which bb belongs) yields an updated bb which - // no longer overlaps ibb - MakeDisjunctWindowContours(other, temp_contour, poly); - if(poly.size() == 1) { - - const BoundingBox newbb = GetBoundingBox(poly[0].outer); - if (!BoundingBoxesOverlapping(ibb, newbb )) { - // Good guy bounding box - bb = newbb ; - - ExtractVerticesFromClipper(poly[0].outer, temp_contour, false); - continue; - } - } - - // Take these two overlapping contours and try to merge them. If they - // overlap (which should not happen, but in fact happens-in-the-real- - // world [tm] ), resume using a single contour and a single bounding box. - MergeWindowContours(temp_contour, other, poly); - - if (poly.size() > 1) { - return TryAddOpenings_Poly2Tri(openings, curmesh); - } - else if (poly.size() == 0) { - IFCImporter::LogWarn("ignoring duplicate opening"); - temp_contour.clear(); - break; - } - else { - IFCImporter::LogVerboseDebug("merging overlapping openings"); - ExtractVerticesFromClipper(poly[0].outer, temp_contour, false); - - // Generate the union of the bounding boxes - bb.first = std::min(bb.first, ibb.first); - bb.second = std::max(bb.second, ibb.second); - - // Update contour-to-opening tables accordingly - if (generate_connection_geometry) { - std::vector& t = contours_to_openings[std::distance(contours.begin(),it)]; - joined_openings.insert(joined_openings.end(), t.begin(), t.end()); - - contours_to_openings.erase(contours_to_openings.begin() + std::distance(contours.begin(),it)); - } - - contours.erase(it); - - // Restart from scratch because the newly formed BB might now - // overlap any other BB which its constituent BBs didn't - // previously overlap. - it = contours.begin(); - continue; - } - } - ++it; - } - - if(!temp_contour.empty()) { - if (generate_connection_geometry) { - contours_to_openings.push_back(std::vector( - joined_openings.begin(), - joined_openings.end())); - } - - contours.push_back(ProjectedWindowContour(temp_contour, bb, is_rectangle)); - } - } - - // Check if we still have any openings left - it may well be that this is - // not the cause, for example if all the opening candidates don't intersect - // this surface or point into a direction perpendicular to it. - if (contours.empty()) { - return false; - } - - curmesh.Clear(); - - // Generate a base subdivision into quads to accommodate the given list - // of window bounding boxes. - Quadrify(contours,curmesh); - - // Run a sanity cleanup pass on the window contours to avoid generating - // artifacts during the contour generation phase later on. - CleanupWindowContours(contours); - - // Previously we reduced all windows to rectangular AABBs in projection - // space, now it is time to fill the gaps between the BBs and the real - // window openings. - InsertWindowContours(contours,openings, curmesh); - - // Clip the entire outer contour of our current result against the real - // outer contour of the surface. This is necessary because the result - // of the Quadrify() algorithm is always a square area spanning - // over [0,1]^2 (i.e. entire projection space). - CleanupOuterContour(contour_flat, curmesh); - - // Undo the projection and get back to world (or local object) space - for(IfcVector3& v3 : curmesh.mVerts) { - v3 = minv * v3; - } - - // Generate window caps to connect the symmetric openings on both sides - // of the wall. - if (generate_connection_geometry) { - CloseWindows(contours, minv, contours_to_openings, curmesh); - } - return true; -} - -std::vector GetContourInPlane2D(std::shared_ptr mesh,IfcMatrix3 planeSpace, - IfcVector3 planeNor,IfcFloat planeOffset, - IfcVector3 extrusionDir,IfcVector3& wall_extrusion,bool& first,bool& ok) { - std::vector contour; - - const auto outernor = ((mesh->mVerts[2] - mesh->mVerts[0]) ^ (mesh->mVerts[1] - mesh->mVerts[0])).Normalize(); - const IfcFloat dot = planeNor * outernor; - if (std::fabs(dot) < 1.f - ai_epsilon) { - std::stringstream msg; - msg << "Skipping: Unaligned opening (" << planeNor.x << ", " << planeNor.y << ", " << planeNor.z << ")"; - msg << " . ( " << outernor.x << ", " << outernor.y << ", " << outernor.z << ") = " << dot; - IFCImporter::LogDebug(msg.str().c_str()); - ok = false; - return contour; - } - - const std::vector& va = mesh->mVerts; - if(va.size() <= 2) { - std::stringstream msg; - msg << "Skipping: Only " << va.size() << " verticies in opening mesh."; - IFCImporter::LogDebug(msg.str().c_str()); - ok = false; - return contour; - } - - for(const IfcVector3& xx : mesh->mVerts) { - IfcVector3 vv = planeSpace * xx,vv_extr = planeSpace * (xx + extrusionDir); - - const bool is_extruded_side = std::fabs(vv.z - planeOffset) > std::fabs(vv_extr.z - planeOffset); - if(first) { - first = false; - if(dot > 0.f) { - wall_extrusion = extrusionDir; - if(is_extruded_side) { - wall_extrusion = -wall_extrusion; - } - } - } - - // XXX should not be necessary - but it is. Why? For precision reasons? - vv = is_extruded_side ? vv_extr : vv; - contour.push_back(IfcVector2(vv.x,vv.y)); - } - ok = true; - - return contour; -} - -const float close{ ai_epsilon }; - -static bool isClose(IfcVector2 first,IfcVector2 second) { - auto diff = (second - first); - return (std::fabs(diff.x) < close && std::fabs(diff.y) < close); -} - -static void logSegment(std::pair segment) { - std::stringstream msg2; - msg2 << " Segment: \n"; - msg2 << " " << segment.first.x << " " << segment.first.y << " \n"; - msg2 << " " << segment.second.x << " " << segment.second.y << " \n"; - IFCImporter::LogInfo(msg2.str().c_str()); -} - -std::vector> GetContoursInPlane3D(std::shared_ptr mesh,IfcMatrix3 planeSpace, - IfcFloat planeOffset) { - - { - std::stringstream msg; - msg << "GetContoursInPlane3D: planeSpace is \n"; - msg << planeSpace.a1 << " " << planeSpace.a2 << " " << planeSpace.a3 << " " << "\n"; - msg << planeSpace.b1 << " " << planeSpace.b2 << " " << planeSpace.b3 << " " << "\n"; - msg << planeSpace.c1 << " " << planeSpace.c2 << " " << planeSpace.c3 << " " << "\n"; - msg << "\n planeOffset is " << planeOffset; - IFCImporter::LogInfo(msg.str().c_str()); - } - - // we'll put our line segments in here, and then merge them together into contours later - std::deque> lineSegments; - - // find the lines giving the intersection of the faces with the plane - we'll work in planeSpace throughout. - size_t vI0{ 0 }; // vertex index for first vertex in plane - for(auto nVertices : mesh->mVertcnt) { // iterate over faces - { - std::stringstream msg; - msg << "GetContoursInPlane3D: face (transformed) is \n"; - for(auto vI = vI0; vI < vI0 + nVertices; vI++) { - auto v = planeSpace * mesh->mVerts[vI]; - msg << " " << v.x << " " << v.y << " " << v.z << " " << "\n"; - } - IFCImporter::LogInfo(msg.str().c_str()); - } - - if(nVertices <= 2) // not a plane, a point or line - { - std::stringstream msg; - msg << "GetContoursInPlane3D: found point or line when expecting plane (only " << nVertices << " vertices)"; - IFCImporter::LogWarn(msg.str().c_str()); - vI0 += nVertices; - continue; - } - - auto v0 = planeSpace * mesh->mVerts[vI0]; - - // now calculate intersections between face and plane - IfcVector2 firstPoint; - bool gotFirstPoint(false); - - if(std::fabs(v0.z - planeOffset) < close) { - // first point is on the plane - firstPoint.x = v0.x; - firstPoint.y = v0.y; - gotFirstPoint = true; - } - - auto vn = v0; - for(auto vI = vI0 + 1; vI < vI0 + nVertices; vI++) { - auto vp = vn; - vn = planeSpace * mesh->mVerts[vI]; - IfcVector3 intersection; - - if(std::fabs(vn.z - planeOffset) < close) { - // on the plane - intersection = vn; - } - else if((vn.z > planeOffset) != (vp.z > planeOffset)) - { - // passes through the plane - auto vdir = vn - vp; - auto scale = (planeOffset - vp.z) / vdir.z; - intersection = vp + scale * vdir; - } - else { - // nowhere near - move on - continue; - } - - if(!gotFirstPoint) { - if(std::fabs(vp.z - planeOffset) < close) { - // just had a second line along the plane - firstPoint.x = vp.x; - firstPoint.y = vp.y; - IfcVector2 secondPoint(intersection.x,intersection.y); - auto s = std::pair(firstPoint,secondPoint); - logSegment(s); - lineSegments.push_back(s); - // next firstpoint should be this one - } - else { - // store the first intersection point - firstPoint.x = intersection.x; - firstPoint.y = intersection.y; - gotFirstPoint = true; - } - } - else { - // now got the second point, so store the pair - IfcVector2 secondPoint(intersection.x,intersection.y); - auto s = std::pair(firstPoint,secondPoint); - logSegment(s); - lineSegments.push_back(s); - - // - note that we don't move onto the next face as a non-convex face can create two or more intersections with a plane - gotFirstPoint = false; - } - } - if(gotFirstPoint) { - IFCImporter::LogWarn("GetContoursInPlane3D: odd number of intersections with plane"); - } - vI0 += nVertices; - } - - { - std::stringstream msg; - msg << "GetContoursInPlane3D: found " << lineSegments.size() << " line segments:\n"; - IFCImporter::LogInfo(msg.str().c_str()); - - for(auto& s : lineSegments) { - logSegment(s); - } - - } - - // now merge contours until we have the best-looking polygons we can - std::vector contours; - while(!lineSegments.empty()) { - // start with a polygon and make the best closed contour we can - const auto& firstSeg = lineSegments.front(); - std::deque contour{ firstSeg.first, firstSeg.second }; - lineSegments.pop_front(); - bool foundNextPoint{ true }; - bool closedContour{ false }; - while(foundNextPoint) { - foundNextPoint = false; - for(auto nextSeg = lineSegments.begin(); nextSeg != lineSegments.end(); nextSeg++) { - // see if we can match up both ends - in which case we've closed the contour - if((isClose(contour.front(),nextSeg->first) && isClose(contour.back(),nextSeg->second)) || - (isClose(contour.back(),nextSeg->first) && isClose(contour.front(),nextSeg->second)) - ) { - lineSegments.erase(nextSeg); - closedContour = true; - break; - } - - // otherwise, see if we can match up either end - foundNextPoint = true; - if(isClose(contour.front(),nextSeg->first)) { - contour.push_front(nextSeg->second); - } - else if(isClose(contour.front(),nextSeg->second)) { - contour.push_front(nextSeg->first); - } - else if(isClose(contour.back(),nextSeg->first)) { - contour.push_back(nextSeg->second); - } - else if(isClose(contour.back(),nextSeg->second)) { - contour.push_back(nextSeg->first); - } - else { - foundNextPoint = false; - } - if(foundNextPoint) { - lineSegments.erase(nextSeg); - break; - } - } - } - - if(!closedContour) { - IFCImporter::LogWarn("GetContoursInPlane3D: did not close contour"); - } - - // now add the contour if we can - if(contour.size() <= 2) { - IFCImporter::LogWarn("GetContoursInPlane3D: discarding line/point contour"); - continue; - } - Contour c{}; - for(auto p : contour) - { - c.push_back(p); - } - contours.push_back(c); - } - - { - std::stringstream msg; - msg << "GetContoursInPlane3D: found " << contours.size() << " contours:\n"; - - for(auto c : contours) { - msg << " Contour: \n"; - for(auto p : c) { - msg << " " << p.x << " " << p.y << " \n"; - } - } - - IFCImporter::LogInfo(msg.str().c_str()); - } - - - return contours; -} - -std::vector> GetContoursInPlane(std::shared_ptr mesh,IfcMatrix3 planeSpace, - IfcVector3 planeNor,IfcFloat planeOffset, - IfcVector3 extrusionDir,IfcVector3& wall_extrusion,bool& first) { - - if(mesh->mVertcnt.size() == 1) - { - bool ok; - auto contour = GetContourInPlane2D(mesh,planeSpace,planeNor,planeOffset,extrusionDir,wall_extrusion,first,ok); - if(ok) - return std::vector> {contour}; - else - return std::vector> {}; - } - else - { - return GetContoursInPlane3D(mesh,planeSpace,planeOffset); - } -} - -// ------------------------------------------------------------------------------------------------ -bool TryAddOpenings_Poly2Tri(const std::vector& openings, - TempMesh& curmesh) -{ - IFCImporter::LogWarn("forced to use poly2tri fallback method to generate wall openings"); - std::vector& out = curmesh.mVerts; - - bool result = false; - - // Try to derive a solid base plane within the current surface for use as - // working coordinate system. - bool ok; - IfcVector3 nor; - const IfcMatrix3 m = DerivePlaneCoordinateSpace(curmesh, ok, nor); - if (!ok) { - return false; - } - - const IfcMatrix3 minv = IfcMatrix3(m).Inverse(); - - - IfcFloat coord = -1; - - std::vector contour_flat; - contour_flat.reserve(out.size()); - - IfcVector2 vmin, vmax; - MinMaxChooser()(vmin, vmax); - - // Move all points into the new coordinate system, collecting min/max verts on the way - for(IfcVector3& x : out) { - const IfcVector3 vv = m * x; - - // keep Z offset in the plane coordinate system. Ignoring precision issues - // (which are present, of course), this should be the same value for - // all polygon vertices (assuming the polygon is planar). - - - // XXX this should be guarded, but we somehow need to pick a suitable - // epsilon - // if(coord != -1.0f) { - // assert(std::fabs(coord - vv.z) < 1e-3f); - // } - - coord = vv.z; - - vmin = std::min(IfcVector2(vv.x, vv.y), vmin); - vmax = std::max(IfcVector2(vv.x, vv.y), vmax); - - contour_flat.push_back(IfcVector2(vv.x,vv.y)); - } - - // With the current code in DerivePlaneCoordinateSpace, - // vmin,vmax should always be the 0...1 rectangle (+- numeric inaccuracies) - // but here we won't rely on this. - - vmax -= vmin; - - // If this happens then the projection must have been wrong. - ai_assert(vmax.Length()); - - ClipperLib::ExPolygons clipped; - ClipperLib::Polygons holes_union; - - - IfcVector3 wall_extrusion; - bool first = true; - - try { - - ClipperLib::Clipper clipper_holes; - - for(const TempOpening& t : openings) { - auto contours = GetContoursInPlane(t.profileMesh,m,nor,coord,t.extrusionDir,wall_extrusion,first); - - for(auto& contour : contours) { - // scale to clipping space - ClipperLib::Polygon hole; - for(IfcVector2& pip : contour) { - pip.x = (pip.x - vmin.x) / vmax.x; - pip.y = (pip.y - vmin.y) / vmax.y; - - hole.push_back(ClipperLib::IntPoint(to_int64(pip.x),to_int64(pip.y))); - } - - if(!ClipperLib::Orientation(hole)) { - std::reverse(hole.begin(),hole.end()); - // assert(ClipperLib::Orientation(hole)); - } - - /*ClipperLib::Polygons pol_temp(1), pol_temp2(1); - pol_temp[0] = hole; - - ClipperLib::OffsetPolygons(pol_temp,pol_temp2,5.0); - hole = pol_temp2[0];*/ - - clipper_holes.AddPolygon(hole,ClipperLib::ptSubject); - { - std::stringstream msg; - msg << "- added polygon "; - for(auto elem : hole) { - msg << " (" << elem.X << ", " << elem.Y << ")"; - } - IFCImporter::LogDebug(msg.str().c_str()); - } - } - } - - clipper_holes.Execute(ClipperLib::ctUnion,holes_union, - ClipperLib::pftNonZero, - ClipperLib::pftNonZero); - - if (holes_union.empty()) { - return false; - } - - // Now that we have the big union of all holes, subtract it from the outer contour - // to obtain the final polygon to feed into the triangulator. - { - ClipperLib::Polygon poly; - for(IfcVector2& pip : contour_flat) { - pip.x = (pip.x - vmin.x) / vmax.x; - pip.y = (pip.y - vmin.y) / vmax.y; - - poly.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); - } - - if (ClipperLib::Orientation(poly)) { - std::reverse(poly.begin(), poly.end()); - } - clipper_holes.Clear(); - clipper_holes.AddPolygon(poly,ClipperLib::ptSubject); - - clipper_holes.AddPolygons(holes_union,ClipperLib::ptClip); - clipper_holes.Execute(ClipperLib::ctDifference,clipped, - ClipperLib::pftNonZero, - ClipperLib::pftNonZero); - } - - } - catch (const char* sx) { - IFCImporter::LogError("Ifc: error during polygon clipping, skipping openings for this face: (Clipper: " - + std::string(sx) + ")"); - - return false; - } - - std::vector old_verts; - std::vector old_vertcnt; - - old_verts.swap(curmesh.mVerts); - old_vertcnt.swap(curmesh.mVertcnt); - - std::vector< std::vector > contours; - for(ClipperLib::ExPolygon& clip : clipped) { - - contours.clear(); - - // Build the outer polygon contour line for feeding into poly2tri - std::vector contour_points; - for(ClipperLib::IntPoint& point : clip.outer) { - contour_points.push_back( new p2t::Point(from_int64(point.X), from_int64(point.Y)) ); - } - - p2t::CDT* cdt ; - try { - // Note: this relies on custom modifications in poly2tri to raise runtime_error's - // instead if assertions. These failures are not debug only, they can actually - // happen in production use if the input data is broken. An assertion would be - // inappropriate. - cdt = new p2t::CDT(contour_points); - } - catch(const std::exception& e) { - IFCImporter::LogError("Ifc: error during polygon triangulation, skipping some openings: (poly2tri: " - + std::string(e.what()) + ")"); - continue; - } - - - // Build the poly2tri inner contours for all holes we got from ClipperLib - for(ClipperLib::Polygon& opening : clip.holes) { - - contours.push_back(std::vector()); - std::vector& contour = contours.back(); - - for(ClipperLib::IntPoint& point : opening) { - contour.push_back( new p2t::Point(from_int64(point.X), from_int64(point.Y)) ); - } - - cdt->AddHole(contour); - } - - try { - // Note: See above - cdt->Triangulate(); - } - catch(const std::exception& e) { - IFCImporter::LogError("Ifc: error during polygon triangulation, skipping some openings: (poly2tri: " - + std::string(e.what()) + ")"); - continue; - } - - const std::vector tris = cdt->GetTriangles(); - - // Collect the triangles we just produced - for(p2t::Triangle* tri : tris) { - for(int i = 0; i < 3; ++i) { - - const IfcVector2 v = IfcVector2( - static_cast( tri->GetPoint(i)->x ), - static_cast( tri->GetPoint(i)->y ) - ); - - ai_assert(v.x <= 1.0 && v.x >= 0.0 && v.y <= 1.0 && v.y >= 0.0); - const IfcVector3 v3 = minv * IfcVector3(vmin.x + v.x * vmax.x, vmin.y + v.y * vmax.y,coord) ; - - curmesh.mVerts.push_back(v3); - } - curmesh.mVertcnt.push_back(3); - } - - result = true; - } - - if (!result) { - // revert -- it's a shame, but better than nothing - curmesh.mVerts.insert(curmesh.mVerts.end(),old_verts.begin(), old_verts.end()); - curmesh.mVertcnt.insert(curmesh.mVertcnt.end(),old_vertcnt.begin(), old_vertcnt.end()); - - IFCImporter::LogError("Ifc: revert, could not generate openings for this wall"); - } - - return result; -} - - - } // ! IFC -} // ! Assimp - -#undef to_int64 -#undef from_int64 -#undef one_vec - -#endif diff --git a/libs/assimp/code/AssetLib/IFC/IFCProfile.cpp b/libs/assimp/code/AssetLib/IFC/IFCProfile.cpp deleted file mode 100644 index aa31124..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCProfile.cpp +++ /dev/null @@ -1,190 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFCProfile.cpp - * @brief Read profile and curves entities from IFC files - */ - -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER - -#include "IFCUtil.h" - -namespace Assimp { -namespace IFC { - -// ------------------------------------------------------------------------------------------------ -void ProcessPolyLine(const Schema_2x3::IfcPolyline& def, TempMesh& meshout, ConversionData& /*conv*/) -{ - // this won't produce a valid mesh, it just spits out a list of vertices - IfcVector3 t; - for(const Schema_2x3::IfcCartesianPoint& cp : def.Points) { - ConvertCartesianPoint(t,cp); - meshout.mVerts.push_back(t); - } - meshout.mVertcnt.push_back(static_cast(meshout.mVerts.size())); -} - -// ------------------------------------------------------------------------------------------------ -bool ProcessCurve(const Schema_2x3::IfcCurve& curve, TempMesh& meshout, ConversionData& conv) -{ - std::unique_ptr cv(Curve::Convert(curve,conv)); - if (!cv) { - IFCImporter::LogWarn("skipping unknown IfcCurve entity, type is ", curve.GetClassName()); - return false; - } - - // we must have a bounded curve at this point - if (const BoundedCurve* bc = dynamic_cast(cv.get())) { - try { - bc->SampleDiscrete(meshout); - } - catch(const CurveError& cv) { - IFCImporter::LogError(cv.mStr, " (error occurred while processing curve)"); - return false; - } - meshout.mVertcnt.push_back(static_cast(meshout.mVerts.size())); - return true; - } - - IFCImporter::LogError("cannot use unbounded curve as profile"); - return false; -} - -// ------------------------------------------------------------------------------------------------ -void ProcessClosedProfile(const Schema_2x3::IfcArbitraryClosedProfileDef& def, TempMesh& meshout, ConversionData& conv) -{ - ProcessCurve(def.OuterCurve,meshout,conv); -} - -// ------------------------------------------------------------------------------------------------ -void ProcessOpenProfile(const Schema_2x3::IfcArbitraryOpenProfileDef& def, TempMesh& meshout, ConversionData& conv) -{ - ProcessCurve(def.Curve,meshout,conv); -} - -// ------------------------------------------------------------------------------------------------ -void ProcessParametrizedProfile(const Schema_2x3::IfcParameterizedProfileDef& def, TempMesh& meshout, ConversionData& conv) -{ - if(const Schema_2x3::IfcRectangleProfileDef* const cprofile = def.ToPtr()) { - const IfcFloat x = cprofile->XDim*0.5f, y = cprofile->YDim*0.5f; - - meshout.mVerts.reserve(meshout.mVerts.size()+4); - meshout.mVerts.push_back( IfcVector3( x, y, 0.f )); - meshout.mVerts.push_back( IfcVector3(-x, y, 0.f )); - meshout.mVerts.push_back( IfcVector3(-x,-y, 0.f )); - meshout.mVerts.push_back( IfcVector3( x,-y, 0.f )); - meshout.mVertcnt.push_back(4); - } - else if( const Schema_2x3::IfcCircleProfileDef* const circle = def.ToPtr()) { - if(def.ToPtr()) { - // TODO - } - const size_t segments = conv.settings.cylindricalTessellation; - const IfcFloat delta = AI_MATH_TWO_PI_F/segments, radius = circle->Radius; - - meshout.mVerts.reserve(segments); - - IfcFloat angle = 0.f; - for(size_t i = 0; i < segments; ++i, angle += delta) { - meshout.mVerts.push_back( IfcVector3( std::cos(angle)*radius, std::sin(angle)*radius, 0.f )); - } - - meshout.mVertcnt.push_back(static_cast(segments)); - } - else if( const Schema_2x3::IfcIShapeProfileDef* const ishape = def.ToPtr()) { - // construct simplified IBeam shape - const IfcFloat offset = (ishape->OverallWidth - ishape->WebThickness) / 2; - const IfcFloat inner_height = ishape->OverallDepth - ishape->FlangeThickness * 2; - - meshout.mVerts.reserve(12); - meshout.mVerts.push_back(IfcVector3(0,0,0)); - meshout.mVerts.push_back(IfcVector3(0,ishape->FlangeThickness,0)); - meshout.mVerts.push_back(IfcVector3(offset,ishape->FlangeThickness,0)); - meshout.mVerts.push_back(IfcVector3(offset,ishape->FlangeThickness + inner_height,0)); - meshout.mVerts.push_back(IfcVector3(0,ishape->FlangeThickness + inner_height,0)); - meshout.mVerts.push_back(IfcVector3(0,ishape->OverallDepth,0)); - meshout.mVerts.push_back(IfcVector3(ishape->OverallWidth,ishape->OverallDepth,0)); - meshout.mVerts.push_back(IfcVector3(ishape->OverallWidth,ishape->FlangeThickness + inner_height,0)); - meshout.mVerts.push_back(IfcVector3(offset+ishape->WebThickness,ishape->FlangeThickness + inner_height,0)); - meshout.mVerts.push_back(IfcVector3(offset+ishape->WebThickness,ishape->FlangeThickness,0)); - meshout.mVerts.push_back(IfcVector3(ishape->OverallWidth,ishape->FlangeThickness,0)); - meshout.mVerts.push_back(IfcVector3(ishape->OverallWidth,0,0)); - - meshout.mVertcnt.push_back(12); - } - else { - IFCImporter::LogWarn("skipping unknown IfcParameterizedProfileDef entity, type is ", def.GetClassName()); - return; - } - - IfcMatrix4 trafo; - ConvertAxisPlacement(trafo, *def.Position); - meshout.Transform(trafo); -} - -// ------------------------------------------------------------------------------------------------ -bool ProcessProfile(const Schema_2x3::IfcProfileDef& prof, TempMesh& meshout, ConversionData& conv) -{ - if(const Schema_2x3::IfcArbitraryClosedProfileDef* const cprofile = prof.ToPtr()) { - ProcessClosedProfile(*cprofile,meshout,conv); - } - else if(const Schema_2x3::IfcArbitraryOpenProfileDef* const copen = prof.ToPtr()) { - ProcessOpenProfile(*copen,meshout,conv); - } - else if(const Schema_2x3::IfcParameterizedProfileDef* const cparam = prof.ToPtr()) { - ProcessParametrizedProfile(*cparam,meshout,conv); - } - else { - IFCImporter::LogWarn("skipping unknown IfcProfileDef entity, type is ", prof.GetClassName()); - return false; - } - meshout.RemoveAdjacentDuplicates(); - if (!meshout.mVertcnt.size() || meshout.mVertcnt.front() <= 1) { - return false; - } - return true; -} - -} // ! IFC -} // ! Assimp - -#endif // ASSIMP_BUILD_NO_IFC_IMPORTER diff --git a/libs/assimp/code/AssetLib/IFC/IFCReaderGen1_2x3.cpp b/libs/assimp/code/AssetLib/IFC/IFCReaderGen1_2x3.cpp deleted file mode 100644 index a6f7ae3..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCReaderGen1_2x3.cpp +++ /dev/null @@ -1,3177 +0,0 @@ -/* -Open Asset Import Library (ASSIMP) ----------------------------------------------------------------------- - -Copyright (c) 2006-2020, ASSIMP Development Team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the ASSIMP team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the ASSIMP Development Team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** MACHINE-GENERATED by scripts/ICFImporter/CppGenerator.py */ - -//#include "AssimpPCH.h" -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER - -#include "IFCReaderGen_2x3.h" - -#if _MSC_VER -# pragma warning(push) -# pragma warning(disable : 4702) -#endif // _MSC_VER - -namespace Assimp { - -using namespace ::Assimp::IFC; -using namespace ::Assimp::IFC::Schema_2x3; - -namespace { - typedef EXPRESS::ConversionSchema::SchemaEntry SchemaEntry; - - static const SchemaEntry schema_raw_2x3[] = { - SchemaEntry("ifcstairtypeenum",nullptr ) -, SchemaEntry("ifcspacetypeenum",nullptr ) -, SchemaEntry("ifcwalltypeenum",nullptr ) -, SchemaEntry("ifcmonthinyearnumber",nullptr ) -, SchemaEntry("ifcheatfluxdensitymeasure",nullptr ) -, SchemaEntry("ifckinematicviscositymeasure",nullptr ) -, SchemaEntry("ifcsequenceenum",nullptr ) -, SchemaEntry("ifcairtoairheatrecoverytypeenum",nullptr ) -, SchemaEntry("ifcactorselect",nullptr ) -, SchemaEntry("ifctransformertypeenum",nullptr ) -, SchemaEntry("ifcunitaryequipmenttypeenum",nullptr ) -, SchemaEntry("ifcelectricflowstoragedevicetypeenum",nullptr ) -, SchemaEntry("ifcenergysequenceenum",nullptr ) -, SchemaEntry("ifcworkcontroltypeenum",nullptr ) -, SchemaEntry("ifccurvaturemeasure",nullptr ) -, SchemaEntry("ifcparametervalue",nullptr ) -, SchemaEntry("ifcappliedvalueselect",nullptr ) -, SchemaEntry("ifcwarpingconstantmeasure",nullptr ) -, SchemaEntry("ifcarithmeticoperatorenum",nullptr ) -, SchemaEntry("ifclinearforcemeasure",nullptr ) -, SchemaEntry("ifcwindowpanelpositionenum",nullptr ) -, SchemaEntry("ifcflowmetertypeenum",nullptr ) -, SchemaEntry("ifcrampflighttypeenum",nullptr ) -, SchemaEntry("ifcspecularhighlightselect",nullptr ) -, SchemaEntry("ifcactiontypeenum",nullptr ) -, SchemaEntry("ifcgeometricprojectionenum",nullptr ) -, SchemaEntry("ifctimeseriesdatatypeenum",nullptr ) -, SchemaEntry("ifcmagneticfluxmeasure",nullptr ) -, SchemaEntry("ifcobjecttypeenum",nullptr ) -, SchemaEntry("ifcdataoriginenum",nullptr ) -, SchemaEntry("ifcmassdensitymeasure",nullptr ) -, SchemaEntry("ifclightfixturetypeenum",nullptr ) -, SchemaEntry("ifcservicelifetypeenum",nullptr ) -, SchemaEntry("ifcelectricvoltagemeasure",nullptr ) -, SchemaEntry("ifcheatingvaluemeasure",nullptr ) -, SchemaEntry("ifcpresentabletext",nullptr ) -, SchemaEntry("ifcaheadorbehind",nullptr ) -, SchemaEntry("ifcsimplevalue",nullptr ) -, SchemaEntry("ifcsensortypeenum",nullptr ) -, SchemaEntry("ifcderivedunitenum",nullptr ) -, SchemaEntry("ifcsizeselect",nullptr ) -, SchemaEntry("ifctransportelementtypeenum",nullptr ) -, SchemaEntry("ifcinventorytypeenum",nullptr ) -, SchemaEntry("ifctextdecoration",nullptr ) -, SchemaEntry("ifcdirectionsenseenum",nullptr ) -, SchemaEntry("ifcductfittingtypeenum",nullptr ) -, SchemaEntry("ifcdocumentstatusenum",nullptr ) -, SchemaEntry("ifcslabtypeenum",nullptr ) -, SchemaEntry("ifcdoorstyleconstructionenum",nullptr ) -, SchemaEntry("ifcvolumemeasure",nullptr ) -, SchemaEntry("ifcinductancemeasure",nullptr ) -, SchemaEntry("ifccurtainwalltypeenum",nullptr ) -, SchemaEntry("ifcsiunitname",nullptr ) -, SchemaEntry("ifcspecularexponent",nullptr ) -, SchemaEntry("ifcsoundpressuremeasure",nullptr ) -, SchemaEntry("ifcanalysistheorytypeenum",nullptr ) -, SchemaEntry("ifcgasterminaltypeenum",nullptr ) -, SchemaEntry("ifcyearnumber",nullptr ) -, SchemaEntry("ifcmodulusofelasticitymeasure",nullptr ) -, SchemaEntry("ifcchangeactionenum",nullptr ) -, SchemaEntry("ifcdampertypeenum",nullptr ) -, SchemaEntry("ifcevaporatortypeenum",nullptr ) -, SchemaEntry("ifcionconcentrationmeasure",nullptr ) -, SchemaEntry("ifcductsegmenttypeenum",nullptr ) -, SchemaEntry("ifcprotectivedevicetypeenum",nullptr ) -, SchemaEntry("ifcabsorbeddosemeasure",nullptr ) -, SchemaEntry("ifcmassperlengthmeasure",nullptr ) -, SchemaEntry("ifctextfontname",nullptr ) -, SchemaEntry("ifcorientationselect",nullptr ) -, SchemaEntry("ifcilluminancemeasure",nullptr ) -, SchemaEntry("ifcfiresuppressionterminaltypeenum",nullptr ) -, SchemaEntry("ifcfontstyle",nullptr ) -, SchemaEntry("ifcmomentofinertiameasure",nullptr ) -, SchemaEntry("ifcmodulusofsubgradereactionmeasure",nullptr ) -, SchemaEntry("ifccomplexnumber",nullptr ) -, SchemaEntry("ifchumidifiertypeenum",nullptr ) -, SchemaEntry("ifcpresentationstyleselect",nullptr ) -, SchemaEntry("ifcthermaltransmittancemeasure",nullptr ) -, SchemaEntry("ifcribplatedirectionenum",nullptr ) -, SchemaEntry("ifcclassificationnotationselect",nullptr ) -, SchemaEntry("ifcminuteinhour",nullptr ) -, SchemaEntry("ifcinternalorexternalenum",nullptr ) -, SchemaEntry("ifcrotationalfrequencymeasure",nullptr ) -, SchemaEntry("ifcsanitaryterminaltypeenum",nullptr ) -, SchemaEntry("ifcsymbolstyleselect",nullptr ) -, SchemaEntry("ifcelementcompositionenum",nullptr ) -, SchemaEntry("ifctextpath",nullptr ) -, SchemaEntry("ifcpowermeasure",nullptr ) -, SchemaEntry("ifcsurfacestyleelementselect",nullptr ) -, SchemaEntry("ifcresourceconsumptionenum",nullptr ) -, SchemaEntry("ifcelectriccapacitancemeasure",nullptr ) -, SchemaEntry("ifclayersetdirectionenum",nullptr ) -, SchemaEntry("ifcrailingtypeenum",nullptr ) -, SchemaEntry("ifcobjectiveenum",nullptr ) -, SchemaEntry("ifcdocumentselect",nullptr ) -, SchemaEntry("ifcmodulusoflinearsubgradereactionmeasure",nullptr ) -, SchemaEntry("ifcthermaladmittancemeasure",nullptr ) -, SchemaEntry("ifctransitioncode",nullptr ) -, SchemaEntry("ifcconnectiontypeenum",nullptr ) -, SchemaEntry("ifcmonetarymeasure",nullptr ) -, SchemaEntry("ifcstackterminaltypeenum",nullptr ) -, SchemaEntry("ifccolour",nullptr ) -, SchemaEntry("ifctext",nullptr ) -, SchemaEntry("ifccontextdependentmeasure",nullptr ) -, SchemaEntry("ifcthermalconductivitymeasure",nullptr ) -, SchemaEntry("ifcprojectedortruelengthenum",nullptr ) -, SchemaEntry("ifcpressuremeasure",nullptr ) -, SchemaEntry("ifcmoisturediffusivitymeasure",nullptr ) -, SchemaEntry("ifcbooleanoperator",nullptr ) -, SchemaEntry("ifcpropertysourceenum",nullptr ) -, SchemaEntry("ifctimestamp",nullptr ) -, SchemaEntry("ifcmaterialselect",nullptr ) -, SchemaEntry("ifcgloballyuniqueid",nullptr ) -, SchemaEntry("ifcreflectancemethodenum",nullptr ) -, SchemaEntry("ifcvaporpermeabilitymeasure",nullptr ) -, SchemaEntry("ifctimeseriesscheduletypeenum",nullptr ) -, SchemaEntry("ifclinearmomentmeasure",nullptr ) -, SchemaEntry("ifcgeometricsetselect",nullptr ) -, SchemaEntry("ifcsectionmodulusmeasure",nullptr ) -, SchemaEntry("ifcbsplinecurveform",nullptr ) -, SchemaEntry("ifcdimensionextentusage",nullptr ) -, SchemaEntry("ifcthermalexpansioncoefficientmeasure",nullptr ) -, SchemaEntry("ifchourinday",nullptr ) -, SchemaEntry("ifclinearvelocitymeasure",nullptr ) -, SchemaEntry("ifctorquemeasure",nullptr ) -, SchemaEntry("ifctemperaturegradientmeasure",nullptr ) -, SchemaEntry("ifcfillstyleselect",nullptr ) -, SchemaEntry("ifcelectricchargemeasure",nullptr ) -, SchemaEntry("ifcheatexchangertypeenum",nullptr ) -, SchemaEntry("ifcelectriccurrentenum",nullptr ) -, SchemaEntry("ifcdaylightsavinghour",nullptr ) -, SchemaEntry("ifcshell",nullptr ) -, SchemaEntry("ifcdoseequivalentmeasure",nullptr ) -, SchemaEntry("ifcprojectordertypeenum",nullptr ) -, SchemaEntry("ifcderivedmeasurevalue",nullptr ) -, SchemaEntry("ifclightdistributioncurveenum",nullptr ) -, SchemaEntry("ifcwarpingmomentmeasure",nullptr ) -, SchemaEntry("ifcmembertypeenum",nullptr ) -, SchemaEntry("ifcsoundpowermeasure",nullptr ) -, SchemaEntry("ifctextalignment",nullptr ) -, SchemaEntry("ifccurveoredgecurve",nullptr ) -, SchemaEntry("ifcmassflowratemeasure",nullptr ) -, SchemaEntry("ifcisothermalmoisturecapacitymeasure",nullptr ) -, SchemaEntry("ifccsgselect",nullptr ) -, SchemaEntry("ifccoolingtowertypeenum",nullptr ) -, SchemaEntry("ifcmassmeasure",nullptr ) -, SchemaEntry("ifcpileconstructionenum",nullptr ) -, SchemaEntry("ifcdoorstyleoperationenum",nullptr ) -, SchemaEntry("ifcflowdirectionenum",nullptr ) -, SchemaEntry("ifcthermalloadsourceenum",nullptr ) -, SchemaEntry("ifclengthmeasure",nullptr ) -, SchemaEntry("ifcconstraintenum",nullptr ) -, SchemaEntry("ifcaxis2placement",nullptr ) -, SchemaEntry("ifcloadgrouptypeenum",nullptr ) -, SchemaEntry("ifcvalue",nullptr ) -, SchemaEntry("ifcreinforcingbarsurfaceenum",nullptr ) -, SchemaEntry("ifcprojectorderrecordtypeenum",nullptr ) -, SchemaEntry("ifcdatetimeselect",nullptr ) -, SchemaEntry("ifcstructuralsurfacetypeenum",nullptr ) -, SchemaEntry("ifcpermeablecoveringoperationenum",nullptr ) -, SchemaEntry("ifcfontweight",nullptr ) -, SchemaEntry("ifcphmeasure",nullptr ) -, SchemaEntry("ifcdescriptivemeasure",nullptr ) -, SchemaEntry("ifccurvestylefontselect",nullptr ) -, SchemaEntry("ifcunit",nullptr ) -, SchemaEntry("ifchatchlinedistanceselect",nullptr ) -, SchemaEntry("ifctextstyleselect",nullptr ) -, SchemaEntry("ifcmetricvalueselect",nullptr ) -, SchemaEntry("ifcvectorordirection",nullptr ) -, SchemaEntry("ifcassemblyplaceenum",nullptr ) -, SchemaEntry("ifcairterminaltypeenum",nullptr ) -, SchemaEntry("ifccoveringtypeenum",nullptr ) -, SchemaEntry("ifcplanarforcemeasure",nullptr ) -, SchemaEntry("ifcvalvetypeenum",nullptr ) -, SchemaEntry("ifcalarmtypeenum",nullptr ) -, SchemaEntry("ifcdynamicviscositymeasure",nullptr ) -, SchemaEntry("ifccurrencyenum",nullptr ) -, SchemaEntry("ifcmodulusofrotationalsubgradereactionmeasure",nullptr ) -, SchemaEntry("ifccablecarrierfittingtypeenum",nullptr ) -, SchemaEntry("ifcboolean",nullptr ) -, SchemaEntry("ifcactionsourcetypeenum",nullptr ) -, SchemaEntry("ifcstructuralactivityassignmentselect",nullptr ) -, SchemaEntry("ifcdistributionchamberelementtypeenum",nullptr ) -, SchemaEntry("ifcevaporativecoolertypeenum",nullptr ) -, SchemaEntry("ifcmagneticfluxdensitymeasure",nullptr ) -, SchemaEntry("ifclightdistributiondatasourceselect",nullptr ) -, SchemaEntry("ifctubebundletypeenum",nullptr ) -, SchemaEntry("ifcaccelerationmeasure",nullptr ) -, SchemaEntry("ifcboilertypeenum",nullptr ) -, SchemaEntry("ifcramptypeenum",nullptr ) -, SchemaEntry("ifcluminousintensitydistributionmeasure",nullptr ) -, SchemaEntry("ifctrimmingpreference",nullptr ) -, SchemaEntry("ifcspecificheatcapacitymeasure",nullptr ) -, SchemaEntry("ifcamountofsubstancemeasure",nullptr ) -, SchemaEntry("ifcroleenum",nullptr ) -, SchemaEntry("ifcdocumentconfidentialityenum",nullptr ) -, SchemaEntry("ifcfrequencymeasure",nullptr ) -, SchemaEntry("ifcsectiontypeenum",nullptr ) -, SchemaEntry("ifcelementassemblytypeenum",nullptr ) -, SchemaEntry("ifcfootingtypeenum",nullptr ) -, SchemaEntry("ifclayereditem",nullptr ) -, SchemaEntry("ifccablesegmenttypeenum",nullptr ) -, SchemaEntry("ifcdefinedsymbolselect",nullptr ) -, SchemaEntry("ifcbuildingelementproxytypeenum",nullptr ) -, SchemaEntry("ifcelectricgeneratortypeenum",nullptr ) -, SchemaEntry("ifcrotationalstiffnessmeasure",nullptr ) -, SchemaEntry("ifcspaceheatertypeenum",nullptr ) -, SchemaEntry("ifcareameasure",nullptr ) -, SchemaEntry("ifclabel",nullptr ) -, SchemaEntry("ifccostscheduletypeenum",nullptr ) -, SchemaEntry("ifcswitchingdevicetypeenum",nullptr ) -, SchemaEntry("ifcelectrictimecontroltypeenum",nullptr ) -, SchemaEntry("ifcfiltertypeenum",nullptr ) -, SchemaEntry("ifcpositivelengthmeasure",nullptr ) -, SchemaEntry("ifcnullstyle",nullptr ) -, SchemaEntry("ifcconditioncriterionselect",nullptr ) -, SchemaEntry("ifcshearmodulusmeasure",nullptr ) -, SchemaEntry("ifcnormalisedratiomeasure",nullptr ) -, SchemaEntry("ifcdoorpaneloperationenum",nullptr ) -, SchemaEntry("ifcpointorvertexpoint",nullptr ) -, SchemaEntry("ifcrooftypeenum",nullptr ) -, SchemaEntry("ifccountmeasure",nullptr ) -, SchemaEntry("ifcelectricconductancemeasure",nullptr ) -, SchemaEntry("ifcproceduretypeenum",nullptr ) -, SchemaEntry("ifcflowinstrumenttypeenum",nullptr ) -, SchemaEntry("ifcelectricmotortypeenum",nullptr ) -, SchemaEntry("ifcsurfaceside",nullptr ) -, SchemaEntry("ifcstructuralcurvetypeenum",nullptr ) -, SchemaEntry("ifccondensertypeenum",nullptr ) -, SchemaEntry("ifclinearstiffnessmeasure",nullptr ) -, SchemaEntry("ifcunitenum",nullptr ) -, SchemaEntry("ifcoccupanttypeenum",nullptr ) -, SchemaEntry("ifcthermalloadtypeenum",nullptr ) -, SchemaEntry("ifcreinforcingbarroleenum",nullptr ) -, SchemaEntry("ifcbenchmarkenum",nullptr ) -, SchemaEntry("ifcpositiveplaneanglemeasure",nullptr ) -, SchemaEntry("ifctexttransformation",nullptr ) -, SchemaEntry("ifcdraughtingcalloutelement",nullptr ) -, SchemaEntry("ifcratiomeasure",nullptr ) -, SchemaEntry("ifcsolidanglemeasure",nullptr ) -, SchemaEntry("ifcpipesegmenttypeenum",nullptr ) -, SchemaEntry("ifccablecarriersegmenttypeenum",nullptr ) -, SchemaEntry("ifccolourorfactor",nullptr ) -, SchemaEntry("ifcidentifier",nullptr ) -, SchemaEntry("ifctendontypeenum",nullptr ) -, SchemaEntry("ifccontrollertypeenum",nullptr ) -, SchemaEntry("ifcradioactivitymeasure",nullptr ) -, SchemaEntry("ifctimemeasure",nullptr ) -, SchemaEntry("ifcpumptypeenum",nullptr ) -, SchemaEntry("ifcelectricheatertypeenum",nullptr ) -, SchemaEntry("ifcbeamtypeenum",nullptr ) -, SchemaEntry("ifcstateenum",nullptr ) -, SchemaEntry("ifcsiprefix",nullptr ) -, SchemaEntry("ifcnumericmeasure",nullptr ) -, SchemaEntry("ifcoutlettypeenum",nullptr ) -, SchemaEntry("ifccompoundplaneanglemeasure",nullptr ) -, SchemaEntry("ifcservicelifefactortypeenum",nullptr ) -, SchemaEntry("ifclogicaloperatorenum",nullptr ) -, SchemaEntry("ifcbooleanoperand",nullptr ) -, SchemaEntry("ifcobjectreferenceselect",nullptr ) -, SchemaEntry("ifccooledbeamtypeenum",nullptr ) -, SchemaEntry("ifcductsilencertypeenum",nullptr ) -, SchemaEntry("ifcsectionalareaintegralmeasure",nullptr ) -, SchemaEntry("ifcfontvariant",nullptr ) -, SchemaEntry("ifcvolumetricflowratemeasure",nullptr ) -, SchemaEntry("ifcplatetypeenum",nullptr ) -, SchemaEntry("ifcenvironmentalimpactcategoryenum",nullptr ) -, SchemaEntry("ifcvibrationisolatortypeenum",nullptr ) -, SchemaEntry("ifcthermodynamictemperaturemeasure",nullptr ) -, SchemaEntry("ifcrotationalmassmeasure",nullptr ) -, SchemaEntry("ifcsecondinminute",nullptr ) -, SchemaEntry("ifcdayinmonthnumber",nullptr ) -, SchemaEntry("ifcdimensioncount",nullptr ) -, SchemaEntry("ifcwindowstyleoperationenum",nullptr ) -, SchemaEntry("ifcthermalresistancemeasure",nullptr ) -, SchemaEntry("ifcmeasurevalue",nullptr ) -, SchemaEntry("ifcwindowpaneloperationenum",nullptr ) -, SchemaEntry("ifcchillertypeenum",nullptr ) -, SchemaEntry("ifcpositiveratiomeasure",nullptr ) -, SchemaEntry("ifcinteger",nullptr ) -, SchemaEntry("ifclogical",nullptr ) -, SchemaEntry("ifcjunctionboxtypeenum",nullptr ) -, SchemaEntry("ifcaddresstypeenum",nullptr ) -, SchemaEntry("ifcwasteterminaltypeenum",nullptr ) -, SchemaEntry("ifctrimmingselect",nullptr ) -, SchemaEntry("ifclightemissionsourceenum",nullptr ) -, SchemaEntry("ifcsoundscaleenum",nullptr ) -, SchemaEntry("ifcluminousfluxmeasure",nullptr ) -, SchemaEntry("ifcelectricresistancemeasure",nullptr ) -, SchemaEntry("ifcintegercountratemeasure",nullptr ) -, SchemaEntry("ifcphysicalorvirtualenum",nullptr ) -, SchemaEntry("ifcmolecularweightmeasure",nullptr ) -, SchemaEntry("ifcprofiletypeenum",nullptr ) -, SchemaEntry("ifcboxalignment",nullptr ) -, SchemaEntry("ifcglobalorlocalenum",nullptr ) -, SchemaEntry("ifcspecularroughness",nullptr ) -, SchemaEntry("ifclamptypeenum",nullptr ) -, SchemaEntry("ifcpiletypeenum",nullptr ) -, SchemaEntry("ifcelectriccurrentmeasure",nullptr ) -, SchemaEntry("ifcfantypeenum",nullptr ) -, SchemaEntry("ifcsurfaceorfacesurface",nullptr ) -, SchemaEntry("ifcpipefittingtypeenum",nullptr ) -, SchemaEntry("ifctanktypeenum",nullptr ) -, SchemaEntry("ifccurvefontorscaledcurvefontselect",nullptr ) -, SchemaEntry("ifcwindowstyleconstructionenum",nullptr ) -, SchemaEntry("ifcairterminalboxtypeenum",nullptr ) -, SchemaEntry("ifcstairflighttypeenum",nullptr ) -, SchemaEntry("ifcluminousintensitymeasure",nullptr ) -, SchemaEntry("ifcmotorconnectiontypeenum",nullptr ) -, SchemaEntry("ifcplaneanglemeasure",nullptr ) -, SchemaEntry("ifcactuatortypeenum",nullptr ) -, SchemaEntry("ifccolumntypeenum",nullptr ) -, SchemaEntry("ifctextfontselect",nullptr ) -, SchemaEntry("ifcdoorpanelpositionenum",nullptr ) -, SchemaEntry("ifccoiltypeenum",nullptr ) -, SchemaEntry("ifcangularvelocitymeasure",nullptr ) -, SchemaEntry("ifcanalysismodeltypeenum",nullptr ) -, SchemaEntry("ifclibraryselect",nullptr ) -, SchemaEntry("ifcforcemeasure",nullptr ) -, SchemaEntry("ifcfillareastyletileshapeselect",nullptr ) -, SchemaEntry("ifcelectricappliancetypeenum",nullptr ) -, SchemaEntry("ifcsurfacetextureenum",nullptr ) -, SchemaEntry("ifccharacterstyleselect",nullptr ) -, SchemaEntry("ifcenergymeasure",nullptr ) -, SchemaEntry("ifcreal",nullptr ) -, SchemaEntry("ifccompressortypeenum",nullptr ) -, SchemaEntry("ifcelectricdistributionpointfunctionenum",nullptr ) -, SchemaEntry("ifcroot",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcobjectdefinition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctypeobject",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctypeproduct",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionflowelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowcontrollertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectrictimecontroltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshapemodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctopologyrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnects",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelcoversspaces",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowfittingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablecarrierfittingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralconnectioncondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcslippageconnectioncondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcenergyconversiondevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoiltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcobject",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccontrol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcperformancehistory",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrepresentationitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometricrepresentationitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextliteral",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextliteralwithextent",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproductrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproduct",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionflowelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundedcurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompositecurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifc2dcompositecurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundarycondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundaryfacecondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator3d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproperty",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsimpleproperty",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyenumeratedvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpresentationlayerassignment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpresentationlayerwithstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstairflighttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementarysurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplane",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbooleanresult",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbooleanclippingresult",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsolidmodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmanifoldsolidbrep",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprofileproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeneralprofileproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralprofileproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstackterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralconnection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralcurveconnection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcjunctionboxtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociates",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesconstraint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertydefinition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertysetdefinition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoorpanelproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstraintrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspacethermalloadproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclibraryinformation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprocess",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctask",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcappliedvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcenvironmentalimpactvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelfillselement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprocedure",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralload",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadstatic",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadsingledisplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproxy",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurvestylefont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsubcontractresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccalendardate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdocumentelectronicformat",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelcontainedinspatialstructure",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproductsofcombustionproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctopologicalrepresentationitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcedge",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcedgecurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplatetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcobjectplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgridplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfiresuppressionterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmechanicalmaterialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowstoragedevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcperson",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsweptsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfaceofrevolution",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcorientededge",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcownerhistory",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassigns",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstoactor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdirection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcementbarproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcparameterizedprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccshapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfeatureelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfeatureelementsubtraction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcedgefeature",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcchamferedgefeature",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolumn",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyreferencevalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialclassificationrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricmotortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspatialstructureelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspacetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternalreference",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternallydefinedhatchstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolumntype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccranerailashapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccondensertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectselements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectswithrealizingelements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccircleprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccirclehollowprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcorganizationrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaxis2placement3d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpresentationstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurvestyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcequipmentelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompositecurvesegment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrectangleprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcphysicalquantity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcphysicalcomplexquantity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociateslibrary",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelsequence",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementproxy",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributioncontrolelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowinstrumenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdraughtingcallout",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdimensioncurvedirectedcallout",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclineardimension",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementassembly",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdraughtingcalloutrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccsgprimitive3d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrightcircularcone",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternallydefinedsurfacestyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprojectorder",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyconstraintrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclshapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcangulardimension",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextstylefordefinedfont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclocalplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsweptareasolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrevolvedareasolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralsurfaceconnection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcradiusdimension",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsweptdisksolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifchalfspacesolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpolygonalboundedhalfspace",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctimeseriesschedule",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdimensioncalloutrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccooledbeamtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproject",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcapprovalrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcevaporatortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclaborresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadsingledisplacementdistortion",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyboundedvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrampflighttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadplanarforce",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctubebundletype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvalvetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternallydefinedtextfont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctrimmedcurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldefines",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldefinesbyproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstocontrol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcactor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcoccupant",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifchumidifiertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcarbitraryopenprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstoprojectorder",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpermit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcoffsetcurve3d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourcepositional",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacetexture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcblobtexture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompositeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdocumentinformation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestylelighting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcphysicalsimplequantity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantityarea",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctimeseries",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclassificationnotation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcramp",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefineditem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedcurvefont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedcolour",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurrencyrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowmovingdevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspaceheatertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclamptype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementcomponent",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcingelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcingbar",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricheatertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctshapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstraint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcobjective",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralactivity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctexturecoordinate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctexturemap",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmonetaryunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantitytime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctablerow",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightdistributiondata",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcductfittingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator2d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator2dnonuniform",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclassificationnotationfacet",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesapproval",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdraughtingpredefinedcurvefont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadsingleforce",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadsingleforcewarping",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurvestylefontandscaling",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvirtualelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrightcircularcylinder",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcoutlettype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldecomposes",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelnests",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccovering",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternallydefinedsymbol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcirregulartimeseries",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpolyline",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpath",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementcomponent",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfastener",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmappeditem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmetric",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdocumentreference",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsectionproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrectangularpyramid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelreferencedinspatialstructure",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccrewresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcnamedunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccontextdependentunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcunitaryequipmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcroof",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstasks",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralmember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectsports",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstylemodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstyledrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspatialstructureelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuilding",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectedfaceset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcopenshell",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacetedbrep",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclocaltime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmechanicalconcretematerialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconic",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoveringtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcroundedrectangleprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcairterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowmovingdevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompressortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindowpanelproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedsymbol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedterminatorsymbol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcishapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcasymmetricishapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccontrollertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrailing",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgroup",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcasset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialdefinitionrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurvestylefontpattern",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcapprovalpropertyrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrailingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwall",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclassificationitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralpointconnection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectiongeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectionpointgeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctimeseriesvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertylistvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfurniturestandard",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelschedulescostitems",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricgeneratortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstyleditem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotationoccurrence",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotationsymboloccurrence",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcarbitraryclosedprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcarbitraryprofiledefwithvoids",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcline",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmateriallayerset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowsegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcairterminalboxtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectsstructuralmember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertysinglevalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcalarmtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcellipseprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstair",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedtextfont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextstylefontmodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestyleshading",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpumptype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdefinedsymbol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclassificationitemrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeneralmaterialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementcomponenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfastenertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmechanicalfastenertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpermeablecoveringproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowfitting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcapproval",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshapeaspect",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstraintclassificationrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourcedirectional",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectsstructuralactivity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesprofileproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotationsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfuelproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowcontroller",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfailureconnectioncondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingstorey",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcworkcontrol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcworkschedule",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctable",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcductsegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralsteelprofileproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdraughtingpredefinedtextfont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralsurfacemember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralsurfacemembervarying",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacesurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclassification",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmateriallist",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccostschedule",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoordinateduniversaltimeoffset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplanarextent",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplanarbox",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfillareastyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsectionreinforcementproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolourspecification",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvector",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbeam",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolourrgb",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralplanaraction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralplanaractionvarying",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsite",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdiscreteaccessorytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvibrationisolatortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcevaporativecoolertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionchamberelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfeatureelementaddition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstoresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructureddimensioncallout",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoolingtowertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccenterlineprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctexturevertex",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcorganization",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindowstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourcegoniometric",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcribplateprofileproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctransformertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmembertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfaceoflinearextrusion",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmotorconnectiontype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowtreatmentdevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcductsilencertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindowliningproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfurnishingelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsystemfurnitureelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectionpointeccentricity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwasteterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbsplinecurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbeziercurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdocumentinformationrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcactuatortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributioncontrolelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesdocument",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoorliningproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshellbasedsurfacemodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcactionrequest",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcextrudedareasolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsystem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfillareastylehatching",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelvoidselement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectspathelements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelspaceboundary",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacecurvesweptareasolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator3dnonuniform",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelinteractionrequirements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurtainwalltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantitylength",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcequipmentstandard",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowstoragedevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvirtualgridintersection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdiameterdimension",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcswitchingdevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaddress",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctelecomaddress",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindow",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmechanicalsteelmaterialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowtreatmentdevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelservicesbuildings",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcchillertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstoproduct",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrectanglehollowprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcenergyproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboxedhalfspace",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaxis2placement2d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspaceprogram",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpoint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesianpoint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundedsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcloop",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpolyloop",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedpointmarkersymbol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcterminatorsymbol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdimensioncurveterminator",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelprojectselement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctrapeziumprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrepresentationcontext",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometricrepresentationcontext",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextstylewithboxcharacteristics",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurveboundedplane",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantitycount",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctimeseriesreferencerelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadtemperature",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsiunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralreaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralpointreaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaxis1placement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcementdefinitionproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricappliancetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsensortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfurnishingelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprotectivedevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifczshapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcscheduletimecontrol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrepresentationmap",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclosedshell",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementpart",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdraughtingpredefinedcolour",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpostaladdress",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcblock",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightfixturetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcopeningelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourcespot",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctendonanchor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestylerefraction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricflowstoragedevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfluidflowproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsphere",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesappliedvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdampertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprojectorderrecord",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdimensionalexponents",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldefinesbytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionchamberelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmechanicalfastener",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantityvolume",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrectangulartrimmedsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdateandtime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifczone",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfantype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometricset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfillareastyletiles",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpixeltexture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablesegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreloverridesproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmeasurewithunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcslabtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcservicelife",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfurnituretype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccostitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcingmesh",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcextendedmaterialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcactorrole",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacetedbrepwithvoids",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstraintaggregationrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgasterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectswitheccentricity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpile",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfillareastyletilesymbolwithstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricalbaseproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionmaterialresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotationcurveoccurrence",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdimensioncurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometriccurveset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelaggregates",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacebasedsurfacemodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcenergyconversiondevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrampflight",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyenumeration",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvertexloop",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcushapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifchygroscopicmaterialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacebound",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfaceouterbound",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifconedirectionrepeatfactor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboilertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionequipmentresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccomplexproperty",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfooting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcopticalmaterialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionproductresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundaryedgecondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcderivedprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertytablevalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstogroup",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowmetertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoorstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectsporttoelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesclassification",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcunitassignment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowterminal",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccranerailfshapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowsegment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementquantity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundarynodecondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundarynodeconditionwarping",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurtainwall",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdiscreteaccessory",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgrid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsanitaryterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsoundproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsubedge",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextstyletextmodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfiltertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsymbolstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctendon",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdimensionpair",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadgroup",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpresentationstyleassignment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcregulartimeseries",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralcurvemember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourceambient",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcport",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspace",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcheatexchangertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctanktype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcinventory",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcappliedvaluerelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsoundvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctransportelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcairtoairheatrecoverytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstairflight",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricalelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightintensitydistribution",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclassificationreference",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestylewithtextures",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundingbox",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcapplication",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwalltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmove",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccircle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcoffsetcurve2d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmateriallayersetusage",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpointoncurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralresultgroup",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsectionedspine",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcslab",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectionportgeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantityweight",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesmaterial",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvertex",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvertexpoint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreferencesvaluedocument",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpersonandorganization",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelflowcontrolelements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstoprocess",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructurallinearaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructurallinearactionvarying",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementproxytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprojectionelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcderivedunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcapprovalactorrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconversionbasedunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterial",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometricrepresentationsubcontext",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotationsurfaceoccurrence",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefineddimensionsymbol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcroundededgefeature",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelcoversbldgelements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricdistributionpoint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablecarriersegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadlinearforce",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgridaxis",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcirregulartimeseriesvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwallstandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreloccupiesspaces",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcderivedunitelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccsgsolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbeamtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotationfillarea",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelaxation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralcurvemembervarying",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpointonsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertydependencyrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvertexbasedtexturemap",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcorderaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclibraryreference",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcedgeloop",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotationfillareaoccurrence",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectsstructuralelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcworkplan",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcellipse",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproductdefinitionshape",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprojectioncurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricalcircuit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrationalbeziercurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralpointaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcservicelifefactor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcthermalmaterialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctexturecoordinategenerator",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpipesegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctwodirectionrepeatfactor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshaperepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestylerendering",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionport",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcimagetexture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpipefittingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctransportelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotationtextoccurrence",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectionsurfacegeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralanalysismodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectioncurvegeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconditioncriterion",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwaterproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmateriallayer",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccostvalue",&STEP::ObjectHelper::Construct ) - - }; -} - -// ----------------------------------------------------------------------------------------------------------- -void IFC::Schema_2x3::GetSchema(EXPRESS::ConversionSchema& out) { - out = EXPRESS::ConversionSchema(schema_raw_2x3); -} - -namespace STEP { - -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const STEP::DB& /*db*/, const LIST& /*params*/, NotImplemented* /*in*/) -{ - return 0; -} - -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRoot* in) -{ - size_t base = 0; - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRoot"); } do { // convert the 'GlobalId' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->GlobalId, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcRoot to be a `IfcGloballyUniqueId`")); } - } while(0); - do { // convert the 'OwnerHistory' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->OwnerHistory, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcRoot to be a `IfcOwnerHistory`")); } - } while(0); - do { // convert the 'Name' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcRoot to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Description' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Description, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcRoot to be a `IfcText`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcObjectDefinition* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcObjectDefinition"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTypeObject* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTypeProduct* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionFlowElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowControllerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricTimeControlType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRepresentation* in) -{ - size_t base = 0; - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRepresentation"); } do { // convert the 'ContextOfItems' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->ContextOfItems, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcRepresentation to be a `IfcRepresentationContext`")); } - } while(0); - do { // convert the 'RepresentationIdentifier' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RepresentationIdentifier, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcRepresentation to be a `IfcLabel`")); } - } while(0); - do { // convert the 'RepresentationType' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RepresentationType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcRepresentation to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Items' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - try { GenericConvert( in->Items, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcRepresentation to be a `SET [1:?] OF IfcRepresentationItem`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcShapeModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTopologyRepresentation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelationship* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRelationship"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelConnects* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRelConnects"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowFittingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableCarrierFittingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEnergyConversionDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCoilType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcObject* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcObject"); } do { // convert the 'ObjectType' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ObjectType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcObject to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcControl* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPerformanceHistory* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& /*db*/, const LIST& /*params*/, IfcRepresentationItem* /*in*/) -{ - size_t base = 0; - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricRepresentationItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTextLiteral* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTextLiteralWithExtent* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProductRepresentation* in) -{ - size_t base = 0; - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcProductRepresentation"); } do { // convert the 'Name' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProductRepresentation to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Description' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Description, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProductRepresentation to be a `IfcText`")); } - } while(0); - do { // convert the 'Representations' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->Representations, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcProductRepresentation to be a `LIST [1:?] OF IfcRepresentation`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProduct* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 7) { throw STEP::TypeError("expected 7 arguments to IfcProduct"); } do { // convert the 'ObjectPlacement' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ObjectPlacement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcProduct to be a `IfcObjectPlacement`")); } - } while(0); - do { // convert the 'Representation' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Representation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcProduct to be a `IfcProductRepresentation`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcElement"); } do { // convert the 'Tag' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Tag, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcElement to be a `IfcIdentifier`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionFlowElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoundedCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompositeCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcCompositeCurve"); } do { // convert the 'Segments' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Segments, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcCompositeCurve to be a `LIST [1:?] OF IfcCompositeCurveSegment`")); } - } while(0); - do { // convert the 'SelfIntersect' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->SelfIntersect, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcCompositeCurve to be a `LOGICAL`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, Ifc2DCompositeCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcCartesianTransformationOperator"); } do { // convert the 'Axis1' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis1, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcCartesianTransformationOperator to be a `IfcDirection`")); } - } while(0); - do { // convert the 'Axis2' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis2, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcCartesianTransformationOperator to be a `IfcDirection`")); } - } while(0); - do { // convert the 'LocalOrigin' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->LocalOrigin, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcCartesianTransformationOperator to be a `IfcCartesianPoint`")); } - } while(0); - do { // convert the 'Scale' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Scale, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcCartesianTransformationOperator to be a `REAL`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator3D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcCartesianTransformationOperator3D"); } do { // convert the 'Axis3' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis3, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcCartesianTransformationOperator3D to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProperty* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcProperty"); } do { // convert the 'Name' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProperty to be a `IfcIdentifier`")); } - } while(0); - do { // convert the 'Description' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Description, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProperty to be a `IfcText`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSimpleProperty* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcSimpleProperty"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyEnumeratedValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStairFlightType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementarySurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcElementarySurface"); } do { // convert the 'Position' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcElementarySurface to be a `IfcAxis2Placement3D`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlane* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPlane"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBooleanResult* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcBooleanResult"); } do { // convert the 'Operator' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Operator, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcBooleanResult to be a `IfcBooleanOperator`")); } - } while(0); - do { // convert the 'FirstOperand' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->FirstOperand, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcBooleanResult to be a `IfcBooleanOperand`")); } - } while(0); - do { // convert the 'SecondOperand' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->SecondOperand, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcBooleanResult to be a `IfcBooleanOperand`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBooleanClippingResult* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcBooleanClippingResult"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSolidModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcManifoldSolidBrep* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcManifoldSolidBrep"); } do { // convert the 'Outer' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Outer, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcManifoldSolidBrep to be a `IfcClosedShell`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStackTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralConnection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralCurveConnection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcJunctionBoxType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyDefinition* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPropertyDefinition"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertySetDefinition* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPropertySetDefinition"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProcess* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTask* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelFillsElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelFillsElement"); } do { // convert the 'RelatingOpeningElement' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatingOpeningElement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelFillsElement to be a `IfcOpeningElement`")); } - } while(0); - do { // convert the 'RelatedBuildingElement' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatedBuildingElement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelFillsElement to be a `IfcElement`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProcedure* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProxy* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSubContractResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelContainedInSpatialStructure* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelContainedInSpatialStructure"); } do { // convert the 'RelatedElements' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatedElements, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelContainedInSpatialStructure to be a `SET [1:?] OF IfcProduct`")); } - } while(0); - do { // convert the 'RelatingStructure' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatingStructure, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelContainedInSpatialStructure to be a `IfcSpatialStructureElement`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTopologicalRepresentationItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEdge* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEdgeCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlateType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& /*db*/, const LIST& /*params*/, IfcObjectPlacement* /*in*/) -{ - size_t base = 0; - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGridPlacement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFireSuppressionTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowStorageDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSweptSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceOfRevolution* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOrientedEdge* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDirection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcDirection"); } do { // convert the 'DirectionRatios' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->DirectionRatios, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcDirection to be a `LIST [2:3] OF REAL`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProfileDef* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcProfileDef"); } do { // convert the 'ProfileType' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->ProfileType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProfileDef to be a `IfcProfileTypeEnum`")); } - } while(0); - do { // convert the 'ProfileName' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ProfileName, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProfileDef to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcParameterizedProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcParameterizedProfileDef"); } do { // convert the 'Position' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcParameterizedProfileDef to be a `IfcAxis2Placement2D`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFeatureElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcFeatureElement"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFeatureElementSubtraction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcFeatureElementSubtraction"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEdgeFeature* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcChamferEdgeFeature* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcBuildingElement"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcColumn* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyReferenceValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricMotorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpatialStructureElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpaceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcColumnType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCraneRailAShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCondenserType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCircleProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcCircleProfileDef"); } do { // convert the 'Radius' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Radius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcCircleProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCircleHollowProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcCircleHollowProfileDef"); } do { // convert the 'WallThickness' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->WallThickness, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcCircleHollowProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlacement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPlacement"); } do { // convert the 'Location' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Location, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPlacement to be a `IfcCartesianPoint`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAxis2Placement3D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcAxis2Placement3D"); } do { // convert the 'Axis' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcAxis2Placement3D to be a `IfcDirection`")); } - } while(0); - do { // convert the 'RefDirection' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefDirection, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcAxis2Placement3D to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPresentationStyle* in) -{ - size_t base = 0; - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPresentationStyle"); } do { // convert the 'Name' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPresentationStyle to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEquipmentElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompositeCurveSegment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcCompositeCurveSegment"); } do { // convert the 'Transition' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Transition, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcCompositeCurveSegment to be a `IfcTransitionCode`")); } - } while(0); - do { // convert the 'SameSense' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->SameSense, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcCompositeCurveSegment to be a `BOOLEAN`")); } - } while(0); - do { // convert the 'ParentCurve' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->ParentCurve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcCompositeCurveSegment to be a `IfcCurve`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRectangleProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcRectangleProfileDef"); } do { // convert the 'XDim' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->XDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcRectangleProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'YDim' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->YDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRectangleProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementProxy* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionControlElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowInstrumentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDraughtingCallout* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDimensionCurveDirectedCallout* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLinearDimension* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementAssembly* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCsgPrimitive3D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRightCircularCone* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProjectOrder* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAngularDimension* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLocalPlacement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcLocalPlacement"); } do { // convert the 'PlacementRelTo' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->PlacementRelTo, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcLocalPlacement to be a `IfcObjectPlacement`")); } - } while(0); - do { // convert the 'RelativePlacement' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelativePlacement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcLocalPlacement to be a `IfcAxis2Placement`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSweptAreaSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcSweptAreaSolid"); } do { // convert the 'SweptArea' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->SweptArea, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSweptAreaSolid to be a `IfcProfileDef`")); } - } while(0); - do { // convert the 'Position' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSweptAreaSolid to be a `IfcAxis2Placement3D`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRevolvedAreaSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRevolvedAreaSolid"); } do { // convert the 'Axis' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Axis, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcRevolvedAreaSolid to be a `IfcAxis1Placement`")); } - } while(0); - do { // convert the 'Angle' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Angle, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcRevolvedAreaSolid to be a `IfcPlaneAngleMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralSurfaceConnection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRadiusDimension* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSweptDiskSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcSweptDiskSolid"); } do { // convert the 'Directrix' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Directrix, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSweptDiskSolid to be a `IfcCurve`")); } - } while(0); - do { // convert the 'Radius' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Radius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSweptDiskSolid to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'InnerRadius' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->InnerRadius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSweptDiskSolid to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'StartParam' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->StartParam, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcSweptDiskSolid to be a `IfcParameterValue`")); } - } while(0); - do { // convert the 'EndParam' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->EndParam, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcSweptDiskSolid to be a `IfcParameterValue`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcHalfSpaceSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcHalfSpaceSolid"); } do { // convert the 'BaseSurface' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->BaseSurface, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcHalfSpaceSolid to be a `IfcSurface`")); } - } while(0); - do { // convert the 'AgreementFlag' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->AgreementFlag, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcHalfSpaceSolid to be a `BOOLEAN`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPolygonalBoundedHalfSpace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPolygonalBoundedHalfSpace"); } do { // convert the 'Position' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcPolygonalBoundedHalfSpace to be a `IfcAxis2Placement3D`")); } - } while(0); - do { // convert the 'PolygonalBoundary' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->PolygonalBoundary, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcPolygonalBoundedHalfSpace to be a `IfcBoundedCurve`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTimeSeriesSchedule* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCooledBeamType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProject* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 9) { throw STEP::TypeError("expected 9 arguments to IfcProject"); } do { // convert the 'LongName' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->LongName, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcProject to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Phase' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Phase, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcProject to be a `IfcLabel`")); } - } while(0); - do { // convert the 'RepresentationContexts' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->RepresentationContexts, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcProject to be a `SET [1:?] OF IfcRepresentationContext`")); } - } while(0); - do { // convert the 'UnitsInContext' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->UnitsInContext, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcProject to be a `IfcUnitAssignment`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEvaporatorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLaborResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyBoundedValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRampFlightType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMember* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTubeBundleType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcValveType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTrimmedCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcTrimmedCurve"); } do { // convert the 'BasisCurve' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->BasisCurve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcTrimmedCurve to be a `IfcCurve`")); } - } while(0); - do { // convert the 'Trim1' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Trim1, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcTrimmedCurve to be a `SET [1:2] OF IfcTrimmingSelect`")); } - } while(0); - do { // convert the 'Trim2' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Trim2, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcTrimmedCurve to be a `SET [1:2] OF IfcTrimmingSelect`")); } - } while(0); - do { // convert the 'SenseAgreement' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->SenseAgreement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcTrimmedCurve to be a `BOOLEAN`")); } - } while(0); - do { // convert the 'MasterRepresentation' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->MasterRepresentation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcTrimmedCurve to be a `IfcTrimmingPreference`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelDefines* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcRelDefines"); } do { // convert the 'RelatedObjects' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->RelatedObjects, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelDefines to be a `SET [1:?] OF IfcObject`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelDefinesByProperties* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelDefinesByProperties"); } do { // convert the 'RelatingPropertyDefinition' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->RelatingPropertyDefinition, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelDefinesByProperties to be a `IfcPropertySetDefinition`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcActor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOccupant* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcHumidifierType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcArbitraryOpenProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcArbitraryOpenProfileDef"); } do { // convert the 'Curve' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Curve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcArbitraryOpenProfileDef to be a `IfcBoundedCurve`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPermit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOffsetCurve3D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourcePositional* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompositeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRamp* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowMovingDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpaceHeaterType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLampType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementComponent* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReinforcingElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReinforcingBar* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricHeaterType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralActivity* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDuctFittingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator2D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator2DnonUniform* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVirtualElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRightCircularCylinder* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOutletType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelDecomposes* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelDecomposes"); } do { // convert the 'RelatingObject' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->RelatingObject, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelDecomposes to be a `IfcObjectDefinition`")); } - } while(0); - do { // convert the 'RelatedObjects' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->RelatedObjects, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelDecomposes to be a `SET [1:?] OF IfcObjectDefinition`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCovering* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPolyline* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPolyline"); } do { // convert the 'Points' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Points, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPolyline to be a `LIST [2:?] OF IfcCartesianPoint`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPath* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementComponent* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFastener* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMappedItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcMappedItem"); } do { // convert the 'MappingSource' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->MappingSource, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcMappedItem to be a `IfcRepresentationMap`")); } - } while(0); - do { // convert the 'MappingTarget' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->MappingTarget, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcMappedItem to be a `IfcCartesianTransformationOperator`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRectangularPyramid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCrewResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcNamedUnit* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcNamedUnit"); } do { // convert the 'Dimensions' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Dimensions, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcNamedUnit to be a `IfcDimensionalExponents`")); } - } while(0); - do { // convert the 'UnitType' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->UnitType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcNamedUnit to be a `IfcUnitEnum`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcContextDependentUnit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcUnitaryEquipmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRoof* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralMember* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStyleModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStyledRepresentation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpatialStructureElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 9) { throw STEP::TypeError("expected 9 arguments to IfcSpatialStructureElement"); } do { // convert the 'LongName' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->LongName, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcSpatialStructureElement to be a `IfcLabel`")); } - } while(0); - do { // convert the 'CompositionType' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->CompositionType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcSpatialStructureElement to be a `IfcElementCompositionEnum`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuilding* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 12) { throw STEP::TypeError("expected 12 arguments to IfcBuilding"); } do { // convert the 'ElevationOfRefHeight' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ElevationOfRefHeight, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to IfcBuilding to be a `IfcLengthMeasure`")); } - } while(0); - do { // convert the 'ElevationOfTerrain' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ElevationOfTerrain, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 10 to IfcBuilding to be a `IfcLengthMeasure`")); } - } while(0); - do { // convert the 'BuildingAddress' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->BuildingAddress, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 11 to IfcBuilding to be a `IfcPostalAddress`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConnectedFaceSet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcConnectedFaceSet"); } do { // convert the 'CfsFaces' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->CfsFaces, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcConnectedFaceSet to be a `SET [1:?] OF IfcFace`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOpenShell* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFacetedBrep* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConic* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcConic"); } do { // convert the 'Position' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcConic to be a `IfcAxis2Placement`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCoveringType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRoundedRectangleProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAirTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowMovingDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompressorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcIShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcIShapeProfileDef"); } do { // convert the 'OverallWidth' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->OverallWidth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcIShapeProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'OverallDepth' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->OverallDepth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcIShapeProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'WebThickness' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->WebThickness, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcIShapeProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'FlangeThickness' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - try { GenericConvert( in->FlangeThickness, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcIShapeProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'FilletRadius' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[4]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->FilletRadius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcIShapeProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAsymmetricIShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcControllerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRailing* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGroup* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAsset* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMaterialDefinitionRepresentation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRailingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWall* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralPointConnection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyListValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPropertyListValue"); } do { // convert the 'ListValues' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->ListValues, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcPropertyListValue to be a `LIST [1:?] OF IfcValue`")); } - } while(0); - do { // convert the 'Unit' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Unit, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcPropertyListValue to be a `IfcUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFurnitureStandard* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricGeneratorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDoor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 10) { throw STEP::TypeError("expected 10 arguments to IfcDoor"); } do { // convert the 'OverallHeight' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->OverallHeight, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcDoor to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'OverallWidth' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->OverallWidth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to IfcDoor to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStyledItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcStyledItem"); } do { // convert the 'Item' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Item, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcStyledItem to be a `IfcRepresentationItem`")); } - } while(0); - do { // convert the 'Styles' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->Styles, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcStyledItem to be a `SET [1:?] OF IfcPresentationStyleAssignment`")); } - } while(0); - do { // convert the 'Name' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcStyledItem to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotationOccurrence* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotationSymbolOccurrence* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcArbitraryClosedProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcArbitraryClosedProfileDef"); } do { // convert the 'OuterCurve' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->OuterCurve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcArbitraryClosedProfileDef to be a `IfcCurve`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcArbitraryProfileDefWithVoids* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLine* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcLine"); } do { // convert the 'Pnt' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Pnt, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcLine to be a `IfcCartesianPoint`")); } - } while(0); - do { // convert the 'Dir' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Dir, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcLine to be a `IfcVector`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAirTerminalBoxType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertySingleValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPropertySingleValue"); } do { // convert the 'NominalValue' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->NominalValue, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcPropertySingleValue to be a `IfcValue`")); } - } while(0); - do { // convert the 'Unit' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Unit, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcPropertySingleValue to be a `IfcUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAlarmType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEllipseProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStair* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceStyleShading* in) -{ - size_t base = 0; - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcSurfaceStyleShading"); } do { // convert the 'SurfaceColour' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->SurfaceColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSurfaceStyleShading to be a `IfcColourRgb`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPumpType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDefinedSymbol* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementComponentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFastenerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMechanicalFastenerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowFitting* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourceDirectional* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- - -} // ! STEP -} // ! Assimp - -#if _MSC_VER -# pragma warning(pop) -#endif // _MSC_VER - -#endif diff --git a/libs/assimp/code/AssetLib/IFC/IFCReaderGen2_2x3.cpp b/libs/assimp/code/AssetLib/IFC/IFCReaderGen2_2x3.cpp deleted file mode 100644 index 0d70511..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCReaderGen2_2x3.cpp +++ /dev/null @@ -1,1927 +0,0 @@ -/* -Open Asset Import Library (ASSIMP) ----------------------------------------------------------------------- - -Copyright (c) 2006-2020, ASSIMP Development Team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the ASSIMP team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the ASSIMP Development Team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -//#include "AssimpPCH.h" -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER - -#include "IFCReaderGen_2x3.h" - -#if _MSC_VER -# pragma warning(push) -# pragma warning(disable : 4702) -#endif // _MSC_VER - -namespace Assimp { -using namespace IFC; -using namespace ::Assimp::IFC::Schema_2x3; - -namespace STEP { - -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceStyle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcSurfaceStyle"); } do { // convert the 'Side' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Side, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSurfaceStyle to be a `IfcSurfaceSide`")); } - } while(0); - do { // convert the 'Styles' argument - std::shared_ptr arg = params[ base++ ]; - try { GenericConvert( in->Styles, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSurfaceStyle to be a `SET [1:5] OF IfcSurfaceStyleElementSelect`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotationSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowController* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingStorey* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWorkControl* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWorkSchedule* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDuctSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcFace"); } do { // convert the 'Bounds' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Bounds, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcFace to be a `SET [1:?] OF IfcFaceBound`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralSurfaceMember* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralSurfaceMemberVarying* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFaceSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCostSchedule* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlanarExtent* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlanarBox* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcColourSpecification* in) -{ - size_t base = 0; - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcColourSpecification"); } do { // convert the 'Name' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcColourSpecification to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVector* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcVector"); } do { // convert the 'Orientation' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Orientation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcVector to be a `IfcDirection`")); } - } while(0); - do { // convert the 'Magnitude' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Magnitude, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcVector to be a `IfcLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBeam* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcColourRgb* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcColourRgb"); } do { // convert the 'Red' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Red, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcColourRgb to be a `IfcNormalisedRatioMeasure`")); } - } while(0); - do { // convert the 'Green' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Green, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcColourRgb to be a `IfcNormalisedRatioMeasure`")); } - } while(0); - do { // convert the 'Blue' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Blue, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcColourRgb to be a `IfcNormalisedRatioMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralPlanarAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralPlanarActionVarying* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSite* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 14) { throw STEP::TypeError("expected 14 arguments to IfcSite"); } do { // convert the 'RefLatitude' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefLatitude, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to IfcSite to be a `IfcCompoundPlaneAngleMeasure`")); } - } while(0); - do { // convert the 'RefLongitude' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefLongitude, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 10 to IfcSite to be a `IfcCompoundPlaneAngleMeasure`")); } - } while(0); - do { // convert the 'RefElevation' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefElevation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 11 to IfcSite to be a `IfcLengthMeasure`")); } - } while(0); - do { // convert the 'LandTitleNumber' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->LandTitleNumber, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 12 to IfcSite to be a `IfcLabel`")); } - } while(0); - do { // convert the 'SiteAddress' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->SiteAddress, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 13 to IfcSite to be a `IfcPostalAddress`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDiscreteAccessoryType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVibrationIsolatorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEvaporativeCoolerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionChamberElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFeatureElementAddition* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuredDimensionCallout* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCoolingTowerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCenterLineProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWindowStyle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourceGoniometric* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTransformerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMemberType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceOfLinearExtrusion* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMotorConnectionType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowTreatmentDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDuctSilencerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFurnishingElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSystemFurnitureElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWasteTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBSplineCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcBSplineCurve"); } do { // convert the 'Degree' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Degree, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcBSplineCurve to be a `INTEGER`")); } - } while(0); - do { // convert the 'ControlPointsList' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->ControlPointsList, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcBSplineCurve to be a `LIST [2:?] OF IfcCartesianPoint`")); } - } while(0); - do { // convert the 'CurveForm' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->CurveForm, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcBSplineCurve to be a `IfcBSplineCurveForm`")); } - } while(0); - do { // convert the 'ClosedCurve' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - try { GenericConvert( in->ClosedCurve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcBSplineCurve to be a `LOGICAL`")); } - } while(0); - do { // convert the 'SelfIntersect' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[4]=true; break; } - try { GenericConvert( in->SelfIntersect, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcBSplineCurve to be a `LOGICAL`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBezierCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcActuatorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionControlElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 7) { throw STEP::TypeError("expected 7 arguments to IfcAnnotation"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcShellBasedSurfaceModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcShellBasedSurfaceModel"); } do { // convert the 'SbsmBoundary' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->SbsmBoundary, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcShellBasedSurfaceModel to be a `SET [1:?] OF IfcShell`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcActionRequest* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcExtrudedAreaSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcExtrudedAreaSolid"); } do { // convert the 'ExtrudedDirection' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->ExtrudedDirection, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcExtrudedAreaSolid to be a `IfcDirection`")); } - } while(0); - do { // convert the 'Depth' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Depth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcExtrudedAreaSolid to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSystem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFillAreaStyleHatching* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelVoidsElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelVoidsElement"); } do { // convert the 'RelatingBuildingElement' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatingBuildingElement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelVoidsElement to be a `IfcElement`")); } - } while(0); - do { // convert the 'RelatedOpeningElement' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatedOpeningElement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelVoidsElement to be a `IfcFeatureElementSubtraction`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceCurveSweptAreaSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator3DnonUniform* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 7) { throw STEP::TypeError("expected 7 arguments to IfcCartesianTransformationOperator3DnonUniform"); } do { // convert the 'Scale2' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Scale2, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcCartesianTransformationOperator3DnonUniform to be a `REAL`")); } - } while(0); - do { // convert the 'Scale3' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Scale3, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcCartesianTransformationOperator3DnonUniform to be a `REAL`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCurtainWallType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEquipmentStandard* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowStorageDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDiameterDimension* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSwitchingDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWindow* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowTreatmentDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcChillerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRectangleHollowProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoxedHalfSpace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAxis2Placement2D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcAxis2Placement2D"); } do { // convert the 'RefDirection' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefDirection, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcAxis2Placement2D to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpaceProgram* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPoint* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianPoint* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcCartesianPoint"); } do { // convert the 'Coordinates' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Coordinates, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcCartesianPoint to be a `LIST [1:3] OF IfcLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoundedSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLoop* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPolyLoop* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPolyLoop"); } do { // convert the 'Polygon' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Polygon, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPolyLoop to be a `LIST [3:?] OF IfcCartesianPoint`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTerminatorSymbol* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDimensionCurveTerminator* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTrapeziumProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRepresentationContext* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcRepresentationContext"); } do { // convert the 'ContextIdentifier' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ContextIdentifier, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcRepresentationContext to be a `IfcLabel`")); } - } while(0); - do { // convert the 'ContextType' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ContextType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcRepresentationContext to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricRepresentationContext* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcGeometricRepresentationContext"); } do { // convert the 'CoordinateSpaceDimension' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->CoordinateSpaceDimension, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcGeometricRepresentationContext to be a `IfcDimensionCount`")); } - } while(0); - do { // convert the 'Precision' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Precision, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcGeometricRepresentationContext to be a `REAL`")); } - } while(0); - do { // convert the 'WorldCoordinateSystem' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->WorldCoordinateSystem, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcGeometricRepresentationContext to be a `IfcAxis2Placement`")); } - } while(0); - do { // convert the 'TrueNorth' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->TrueNorth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcGeometricRepresentationContext to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCurveBoundedPlane* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSIUnit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcSIUnit"); } do { // convert the 'Prefix' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Prefix, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSIUnit to be a `IfcSIPrefix`")); } - } while(0); - do { // convert the 'Name' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcSIUnit to be a `IfcSIUnitName`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralReaction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralPointReaction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAxis1Placement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcAxis1Placement"); } do { // convert the 'Axis' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcAxis1Placement to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricApplianceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSensorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFurnishingElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProtectiveDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcZShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcScheduleTimeControl* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRepresentationMap* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcRepresentationMap"); } do { // convert the 'MappingOrigin' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->MappingOrigin, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcRepresentationMap to be a `IfcAxis2Placement`")); } - } while(0); - do { // convert the 'MappedRepresentation' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->MappedRepresentation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcRepresentationMap to be a `IfcRepresentation`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcClosedShell* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcClosedShell"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementPart* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBlock* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightFixtureType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOpeningElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcOpeningElement"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourceSpot* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTendonAnchor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricFlowStorageDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSphere* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDamperType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProjectOrderRecord* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionChamberElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMechanicalFastener* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRectangularTrimmedSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcZone* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFanType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricSet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFillAreaStyleTiles* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelOverridesProperties* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMeasureWithUnit* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcMeasureWithUnit"); } do { // convert the 'ValueComponent' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->ValueComponent, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcMeasureWithUnit to be a `IfcValue`")); } - } while(0); - do { // convert the 'UnitComponent' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->UnitComponent, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcMeasureWithUnit to be a `IfcUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSlabType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcServiceLife* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFurnitureType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCostItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReinforcingMesh* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFacetedBrepWithVoids* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGasTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPile* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFillAreaStyleTileSymbolWithStyle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionMaterialResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotationCurveOccurrence* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDimensionCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricCurveSet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelAggregates* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelAggregates"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFaceBasedSurfaceModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcFaceBasedSurfaceModel"); } do { // convert the 'FbsmFaces' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->FbsmFaces, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcFaceBasedSurfaceModel to be a `SET [1:?] OF IfcConnectedFaceSet`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEnergyConversionDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRampFlight* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVertexLoop* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlate* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcUShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFaceBound* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcFaceBound"); } do { // convert the 'Bound' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Bound, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcFaceBound to be a `IfcLoop`")); } - } while(0); - do { // convert the 'Orientation' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->Orientation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcFaceBound to be a `BOOLEAN`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFaceOuterBound* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcFaceOuterBound"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOneDirectionRepeatFactor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoilerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionEquipmentResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcComplexProperty* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcComplexProperty"); } do { // convert the 'UsageName' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->UsageName, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcComplexProperty to be a `IfcIdentifier`")); } - } while(0); - do { // convert the 'HasProperties' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->HasProperties, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcComplexProperty to be a `SET [1:?] OF IfcProperty`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFooting* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionProductResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDerivedProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyTableValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowMeterType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDoorStyle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcUnitAssignment* in) -{ - size_t base = 0; - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcUnitAssignment"); } do { // convert the 'Units' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Units, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcUnitAssignment to be a `SET [1:?] OF IfcUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowTerminal* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCraneRailFShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowSegment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementQuantity* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcElementQuantity"); } do { // convert the 'MethodOfMeasurement' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->MethodOfMeasurement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcElementQuantity to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Quantities' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Quantities, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcElementQuantity to be a `SET [1:?] OF IfcPhysicalQuantity`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCurtainWall* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDiscreteAccessory* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGrid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSanitaryTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSubedge* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFilterType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTendon* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralLoadGroup* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPresentationStyleAssignment* in) -{ - size_t base = 0; - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPresentationStyleAssignment"); } do { // convert the 'Styles' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Styles, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPresentationStyleAssignment to be a `SET [1:?] OF IfcPresentationStyleSelect`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralCurveMember* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourceAmbient* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCondition* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPort* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 11) { throw STEP::TypeError("expected 11 arguments to IfcSpace"); } do { // convert the 'InteriorOrExteriorSpace' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->InteriorOrExteriorSpace, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to IfcSpace to be a `IfcInternalOrExternalEnum`")); } - } while(0); - do { // convert the 'ElevationWithFlooring' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ElevationWithFlooring, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 10 to IfcSpace to be a `IfcLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcHeatExchangerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTankType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcInventory* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTransportElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAirToAirHeatRecoveryType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStairFlight* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricalElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceStyleWithTextures* in) -{ - size_t base = 0; - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcSurfaceStyleWithTextures"); } do { // convert the 'Textures' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Textures, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSurfaceStyleWithTextures to be a `LIST [1:?] OF IfcSurfaceTexture`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoundingBox* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcBoundingBox"); } do { // convert the 'Corner' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Corner, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcBoundingBox to be a `IfcCartesianPoint`")); } - } while(0); - do { // convert the 'XDim' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->XDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcBoundingBox to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'YDim' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->YDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcBoundingBox to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'ZDim' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->ZDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcBoundingBox to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWallType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMove* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCircle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcCircle"); } do { // convert the 'Radius' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Radius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcCircle to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOffsetCurve2D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPointOnCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralResultGroup* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSectionedSpine* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSlab* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVertex* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVertexPoint* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralLinearAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralLinearActionVarying* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementProxyType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProjectionElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConversionBasedUnit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcConversionBasedUnit"); } do { // convert the 'Name' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcConversionBasedUnit to be a `IfcLabel`")); } - } while(0); - do { // convert the 'ConversionFactor' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->ConversionFactor, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcConversionBasedUnit to be a `IfcMeasureWithUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricRepresentationSubContext* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotationSurfaceOccurrence* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRoundedEdgeFeature* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricDistributionPoint* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableCarrierSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWallStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCsgSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBeamType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotationFillArea* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralCurveMemberVarying* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPointOnSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOrderAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEdgeLoop* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotationFillAreaOccurrence* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWorkPlan* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEllipse* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcEllipse"); } do { // convert the 'SemiAxis1' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->SemiAxis1, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcEllipse to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'SemiAxis2' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->SemiAxis2, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcEllipse to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProductDefinitionShape* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProjectionCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricalCircuit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRationalBezierCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralPointAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPipeSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTwoDirectionRepeatFactor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcShapeRepresentation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertySet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcPropertySet"); } do { // convert the 'HasProperties' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->HasProperties, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcPropertySet to be a `SET [1:?] OF IfcProperty`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceStyleRendering* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 9) { throw STEP::TypeError("expected 9 arguments to IfcSurfaceStyleRendering"); } do { // convert the 'Transparency' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Transparency, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSurfaceStyleRendering to be a `IfcNormalisedRatioMeasure`")); } - } while(0); - do { // convert the 'DiffuseColour' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->DiffuseColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'TransmissionColour' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->TransmissionColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'DiffuseTransmissionColour' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->DiffuseTransmissionColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'ReflectionColour' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ReflectionColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'SpecularColour' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->SpecularColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'SpecularHighlight' argument - std::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->SpecularHighlight, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcSurfaceStyleRendering to be a `IfcSpecularHighlightSelect`")); } - } while(0); - do { // convert the 'ReflectanceMethod' argument - std::shared_ptr arg = params[base++]; - try { GenericConvert( in->ReflectanceMethod, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcSurfaceStyleRendering to be a `IfcReflectanceMethodEnum`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionPort* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPipeFittingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTransportElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotationTextOccurrence* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralAnalysisModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConditionCriterion* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} - -} // ! STEP -} // ! Assimp - -#if _MSC_VER -# pragma warning(pop) -#endif // _MSC_VER - -#endif diff --git a/libs/assimp/code/AssetLib/IFC/IFCReaderGen_2x3.h b/libs/assimp/code/AssetLib/IFC/IFCReaderGen_2x3.h deleted file mode 100644 index f87f121..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCReaderGen_2x3.h +++ /dev/null @@ -1,4380 +0,0 @@ -/* -Open Asset Import Library (ASSIMP) ----------------------------------------------------------------------- - -Copyright (c) 2006-2020, ASSIMP Development Team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the ASSIMP team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the ASSIMP Development Team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** MACHINE-GENERATED by scripts/ICFImporter/CppGenerator.py */ - -#ifndef INCLUDED_IFC_READER_GEN_H -#define INCLUDED_IFC_READER_GEN_H - -#include "AssetLib/Step/STEPFile.h" - -#ifdef _MSC_VER -# pragma warning(push) -# pragma warning( disable : 4512 ) -#endif // _MSC_VER - -namespace Assimp { -namespace IFC { - namespace Schema_2x3 { - - using namespace STEP; - using namespace STEP::EXPRESS; - - - struct NotImplemented : public ObjectHelper { - - }; - - - // ****************************************************************************** - // IFC Custom data types - // ****************************************************************************** - - - // C++ wrapper type for IfcAbsorbedDoseMeasure - typedef REAL IfcAbsorbedDoseMeasure; - // C++ wrapper type for IfcAccelerationMeasure - typedef REAL IfcAccelerationMeasure; - // C++ wrapper type for IfcAmountOfSubstanceMeasure - typedef REAL IfcAmountOfSubstanceMeasure; - // C++ wrapper type for IfcAngularVelocityMeasure - typedef REAL IfcAngularVelocityMeasure; - // C++ wrapper type for IfcAreaMeasure - typedef REAL IfcAreaMeasure; - // C++ wrapper type for IfcBoolean - typedef BOOLEAN IfcBoolean; - // C++ wrapper type for IfcBoxAlignment - typedef STRING IfcBoxAlignment; - // C++ wrapper type for IfcCompoundPlaneAngleMeasure - typedef ListOf< INTEGER, 3, 3 > IfcCompoundPlaneAngleMeasure; - // C++ wrapper type for IfcContextDependentMeasure - typedef REAL IfcContextDependentMeasure; - // C++ wrapper type for IfcCountMeasure - typedef NUMBER IfcCountMeasure; - // C++ wrapper type for IfcCurvatureMeasure - typedef REAL IfcCurvatureMeasure; - // C++ wrapper type for IfcDayInMonthNumber - typedef INTEGER IfcDayInMonthNumber; - // C++ wrapper type for IfcDaylightSavingHour - typedef INTEGER IfcDaylightSavingHour; - // C++ wrapper type for IfcDescriptiveMeasure - typedef STRING IfcDescriptiveMeasure; - // C++ wrapper type for IfcDimensionCount - typedef INTEGER IfcDimensionCount; - // C++ wrapper type for IfcDoseEquivalentMeasure - typedef REAL IfcDoseEquivalentMeasure; - // C++ wrapper type for IfcDynamicViscosityMeasure - typedef REAL IfcDynamicViscosityMeasure; - // C++ wrapper type for IfcElectricCapacitanceMeasure - typedef REAL IfcElectricCapacitanceMeasure; - // C++ wrapper type for IfcElectricChargeMeasure - typedef REAL IfcElectricChargeMeasure; - // C++ wrapper type for IfcElectricConductanceMeasure - typedef REAL IfcElectricConductanceMeasure; - // C++ wrapper type for IfcElectricCurrentMeasure - typedef REAL IfcElectricCurrentMeasure; - // C++ wrapper type for IfcElectricResistanceMeasure - typedef REAL IfcElectricResistanceMeasure; - // C++ wrapper type for IfcElectricVoltageMeasure - typedef REAL IfcElectricVoltageMeasure; - // C++ wrapper type for IfcEnergyMeasure - typedef REAL IfcEnergyMeasure; - // C++ wrapper type for IfcFontStyle - typedef STRING IfcFontStyle; - // C++ wrapper type for IfcFontVariant - typedef STRING IfcFontVariant; - // C++ wrapper type for IfcFontWeight - typedef STRING IfcFontWeight; - // C++ wrapper type for IfcForceMeasure - typedef REAL IfcForceMeasure; - // C++ wrapper type for IfcFrequencyMeasure - typedef REAL IfcFrequencyMeasure; - // C++ wrapper type for IfcGloballyUniqueId - typedef STRING IfcGloballyUniqueId; - // C++ wrapper type for IfcHeatFluxDensityMeasure - typedef REAL IfcHeatFluxDensityMeasure; - // C++ wrapper type for IfcHeatingValueMeasure - typedef REAL IfcHeatingValueMeasure; - // C++ wrapper type for IfcHourInDay - typedef INTEGER IfcHourInDay; - // C++ wrapper type for IfcIdentifier - typedef STRING IfcIdentifier; - // C++ wrapper type for IfcIlluminanceMeasure - typedef REAL IfcIlluminanceMeasure; - // C++ wrapper type for IfcInductanceMeasure - typedef REAL IfcInductanceMeasure; - // C++ wrapper type for IfcInteger - typedef INTEGER IfcInteger; - // C++ wrapper type for IfcIntegerCountRateMeasure - typedef INTEGER IfcIntegerCountRateMeasure; - // C++ wrapper type for IfcIonConcentrationMeasure - typedef REAL IfcIonConcentrationMeasure; - // C++ wrapper type for IfcIsothermalMoistureCapacityMeasure - typedef REAL IfcIsothermalMoistureCapacityMeasure; - // C++ wrapper type for IfcKinematicViscosityMeasure - typedef REAL IfcKinematicViscosityMeasure; - // C++ wrapper type for IfcLabel - typedef STRING IfcLabel; - // C++ wrapper type for IfcLengthMeasure - typedef REAL IfcLengthMeasure; - // C++ wrapper type for IfcLinearForceMeasure - typedef REAL IfcLinearForceMeasure; - // C++ wrapper type for IfcLinearMomentMeasure - typedef REAL IfcLinearMomentMeasure; - // C++ wrapper type for IfcLinearStiffnessMeasure - typedef REAL IfcLinearStiffnessMeasure; - // C++ wrapper type for IfcLinearVelocityMeasure - typedef REAL IfcLinearVelocityMeasure; - // C++ wrapper type for IfcLogical - typedef LOGICAL IfcLogical; - // C++ wrapper type for IfcLuminousFluxMeasure - typedef REAL IfcLuminousFluxMeasure; - // C++ wrapper type for IfcLuminousIntensityDistributionMeasure - typedef REAL IfcLuminousIntensityDistributionMeasure; - // C++ wrapper type for IfcLuminousIntensityMeasure - typedef REAL IfcLuminousIntensityMeasure; - // C++ wrapper type for IfcMagneticFluxDensityMeasure - typedef REAL IfcMagneticFluxDensityMeasure; - // C++ wrapper type for IfcMagneticFluxMeasure - typedef REAL IfcMagneticFluxMeasure; - // C++ wrapper type for IfcMassDensityMeasure - typedef REAL IfcMassDensityMeasure; - // C++ wrapper type for IfcMassFlowRateMeasure - typedef REAL IfcMassFlowRateMeasure; - // C++ wrapper type for IfcMassMeasure - typedef REAL IfcMassMeasure; - // C++ wrapper type for IfcMassPerLengthMeasure - typedef REAL IfcMassPerLengthMeasure; - // C++ wrapper type for IfcMinuteInHour - typedef INTEGER IfcMinuteInHour; - // C++ wrapper type for IfcModulusOfElasticityMeasure - typedef REAL IfcModulusOfElasticityMeasure; - // C++ wrapper type for IfcModulusOfLinearSubgradeReactionMeasure - typedef REAL IfcModulusOfLinearSubgradeReactionMeasure; - // C++ wrapper type for IfcModulusOfRotationalSubgradeReactionMeasure - typedef REAL IfcModulusOfRotationalSubgradeReactionMeasure; - // C++ wrapper type for IfcModulusOfSubgradeReactionMeasure - typedef REAL IfcModulusOfSubgradeReactionMeasure; - // C++ wrapper type for IfcMoistureDiffusivityMeasure - typedef REAL IfcMoistureDiffusivityMeasure; - // C++ wrapper type for IfcMolecularWeightMeasure - typedef REAL IfcMolecularWeightMeasure; - // C++ wrapper type for IfcMomentOfInertiaMeasure - typedef REAL IfcMomentOfInertiaMeasure; - // C++ wrapper type for IfcMonetaryMeasure - typedef REAL IfcMonetaryMeasure; - // C++ wrapper type for IfcMonthInYearNumber - typedef INTEGER IfcMonthInYearNumber; - // C++ wrapper type for IfcNormalisedRatioMeasure - typedef REAL IfcNormalisedRatioMeasure; - // C++ wrapper type for IfcNumericMeasure - typedef NUMBER IfcNumericMeasure; - // C++ wrapper type for IfcPHMeasure - typedef REAL IfcPHMeasure; - // C++ wrapper type for IfcParameterValue - typedef REAL IfcParameterValue; - // C++ wrapper type for IfcPlanarForceMeasure - typedef REAL IfcPlanarForceMeasure; - // C++ wrapper type for IfcPlaneAngleMeasure - typedef REAL IfcPlaneAngleMeasure; - // C++ wrapper type for IfcPositiveLengthMeasure - typedef REAL IfcPositiveLengthMeasure; - // C++ wrapper type for IfcPositivePlaneAngleMeasure - typedef REAL IfcPositivePlaneAngleMeasure; - // C++ wrapper type for IfcPositiveRatioMeasure - typedef REAL IfcPositiveRatioMeasure; - // C++ wrapper type for IfcPowerMeasure - typedef REAL IfcPowerMeasure; - // C++ wrapper type for IfcPresentableText - typedef STRING IfcPresentableText; - // C++ wrapper type for IfcPressureMeasure - typedef REAL IfcPressureMeasure; - // C++ wrapper type for IfcRadioActivityMeasure - typedef REAL IfcRadioActivityMeasure; - // C++ wrapper type for IfcRatioMeasure - typedef REAL IfcRatioMeasure; - // C++ wrapper type for IfcReal - typedef REAL IfcReal; - // C++ wrapper type for IfcRotationalFrequencyMeasure - typedef REAL IfcRotationalFrequencyMeasure; - // C++ wrapper type for IfcRotationalMassMeasure - typedef REAL IfcRotationalMassMeasure; - // C++ wrapper type for IfcRotationalStiffnessMeasure - typedef REAL IfcRotationalStiffnessMeasure; - // C++ wrapper type for IfcSecondInMinute - typedef REAL IfcSecondInMinute; - // C++ wrapper type for IfcSectionModulusMeasure - typedef REAL IfcSectionModulusMeasure; - // C++ wrapper type for IfcSectionalAreaIntegralMeasure - typedef REAL IfcSectionalAreaIntegralMeasure; - // C++ wrapper type for IfcShearModulusMeasure - typedef REAL IfcShearModulusMeasure; - // C++ wrapper type for IfcSolidAngleMeasure - typedef REAL IfcSolidAngleMeasure; - // C++ wrapper type for IfcSoundPowerMeasure - typedef REAL IfcSoundPowerMeasure; - // C++ wrapper type for IfcSoundPressureMeasure - typedef REAL IfcSoundPressureMeasure; - // C++ wrapper type for IfcSpecificHeatCapacityMeasure - typedef REAL IfcSpecificHeatCapacityMeasure; - // C++ wrapper type for IfcSpecularExponent - typedef REAL IfcSpecularExponent; - // C++ wrapper type for IfcSpecularRoughness - typedef REAL IfcSpecularRoughness; - // C++ wrapper type for IfcTemperatureGradientMeasure - typedef REAL IfcTemperatureGradientMeasure; - // C++ wrapper type for IfcText - typedef STRING IfcText; - // C++ wrapper type for IfcTextAlignment - typedef STRING IfcTextAlignment; - // C++ wrapper type for IfcTextDecoration - typedef STRING IfcTextDecoration; - // C++ wrapper type for IfcTextFontName - typedef STRING IfcTextFontName; - // C++ wrapper type for IfcTextTransformation - typedef STRING IfcTextTransformation; - // C++ wrapper type for IfcThermalAdmittanceMeasure - typedef REAL IfcThermalAdmittanceMeasure; - // C++ wrapper type for IfcThermalConductivityMeasure - typedef REAL IfcThermalConductivityMeasure; - // C++ wrapper type for IfcThermalExpansionCoefficientMeasure - typedef REAL IfcThermalExpansionCoefficientMeasure; - // C++ wrapper type for IfcThermalResistanceMeasure - typedef REAL IfcThermalResistanceMeasure; - // C++ wrapper type for IfcThermalTransmittanceMeasure - typedef REAL IfcThermalTransmittanceMeasure; - // C++ wrapper type for IfcThermodynamicTemperatureMeasure - typedef REAL IfcThermodynamicTemperatureMeasure; - // C++ wrapper type for IfcTimeMeasure - typedef REAL IfcTimeMeasure; - // C++ wrapper type for IfcTimeStamp - typedef INTEGER IfcTimeStamp; - // C++ wrapper type for IfcTorqueMeasure - typedef REAL IfcTorqueMeasure; - // C++ wrapper type for IfcVaporPermeabilityMeasure - typedef REAL IfcVaporPermeabilityMeasure; - // C++ wrapper type for IfcVolumeMeasure - typedef REAL IfcVolumeMeasure; - // C++ wrapper type for IfcVolumetricFlowRateMeasure - typedef REAL IfcVolumetricFlowRateMeasure; - // C++ wrapper type for IfcWarpingConstantMeasure - typedef REAL IfcWarpingConstantMeasure; - // C++ wrapper type for IfcWarpingMomentMeasure - typedef REAL IfcWarpingMomentMeasure; - // C++ wrapper type for IfcYearNumber - typedef INTEGER IfcYearNumber; - // C++ wrapper type for IfcActionSourceTypeEnum - typedef ENUMERATION IfcActionSourceTypeEnum; - // C++ wrapper type for IfcActionTypeEnum - typedef ENUMERATION IfcActionTypeEnum; - // C++ wrapper type for IfcActuatorTypeEnum - typedef ENUMERATION IfcActuatorTypeEnum; - // C++ wrapper type for IfcAddressTypeEnum - typedef ENUMERATION IfcAddressTypeEnum; - // C++ wrapper type for IfcAheadOrBehind - typedef ENUMERATION IfcAheadOrBehind; - // C++ wrapper type for IfcAirTerminalBoxTypeEnum - typedef ENUMERATION IfcAirTerminalBoxTypeEnum; - // C++ wrapper type for IfcAirTerminalTypeEnum - typedef ENUMERATION IfcAirTerminalTypeEnum; - // C++ wrapper type for IfcAirToAirHeatRecoveryTypeEnum - typedef ENUMERATION IfcAirToAirHeatRecoveryTypeEnum; - // C++ wrapper type for IfcAlarmTypeEnum - typedef ENUMERATION IfcAlarmTypeEnum; - // C++ wrapper type for IfcAnalysisModelTypeEnum - typedef ENUMERATION IfcAnalysisModelTypeEnum; - // C++ wrapper type for IfcAnalysisTheoryTypeEnum - typedef ENUMERATION IfcAnalysisTheoryTypeEnum; - // C++ wrapper type for IfcArithmeticOperatorEnum - typedef ENUMERATION IfcArithmeticOperatorEnum; - // C++ wrapper type for IfcAssemblyPlaceEnum - typedef ENUMERATION IfcAssemblyPlaceEnum; - // C++ wrapper type for IfcBSplineCurveForm - typedef ENUMERATION IfcBSplineCurveForm; - // C++ wrapper type for IfcBeamTypeEnum - typedef ENUMERATION IfcBeamTypeEnum; - // C++ wrapper type for IfcBenchmarkEnum - typedef ENUMERATION IfcBenchmarkEnum; - // C++ wrapper type for IfcBoilerTypeEnum - typedef ENUMERATION IfcBoilerTypeEnum; - // C++ wrapper type for IfcBooleanOperator - typedef ENUMERATION IfcBooleanOperator; - // C++ wrapper type for IfcBuildingElementProxyTypeEnum - typedef ENUMERATION IfcBuildingElementProxyTypeEnum; - // C++ wrapper type for IfcCableCarrierFittingTypeEnum - typedef ENUMERATION IfcCableCarrierFittingTypeEnum; - // C++ wrapper type for IfcCableCarrierSegmentTypeEnum - typedef ENUMERATION IfcCableCarrierSegmentTypeEnum; - // C++ wrapper type for IfcCableSegmentTypeEnum - typedef ENUMERATION IfcCableSegmentTypeEnum; - // C++ wrapper type for IfcChangeActionEnum - typedef ENUMERATION IfcChangeActionEnum; - // C++ wrapper type for IfcChillerTypeEnum - typedef ENUMERATION IfcChillerTypeEnum; - // C++ wrapper type for IfcCoilTypeEnum - typedef ENUMERATION IfcCoilTypeEnum; - // C++ wrapper type for IfcColumnTypeEnum - typedef ENUMERATION IfcColumnTypeEnum; - // C++ wrapper type for IfcCompressorTypeEnum - typedef ENUMERATION IfcCompressorTypeEnum; - // C++ wrapper type for IfcCondenserTypeEnum - typedef ENUMERATION IfcCondenserTypeEnum; - // C++ wrapper type for IfcConnectionTypeEnum - typedef ENUMERATION IfcConnectionTypeEnum; - // C++ wrapper type for IfcConstraintEnum - typedef ENUMERATION IfcConstraintEnum; - // C++ wrapper type for IfcControllerTypeEnum - typedef ENUMERATION IfcControllerTypeEnum; - // C++ wrapper type for IfcCooledBeamTypeEnum - typedef ENUMERATION IfcCooledBeamTypeEnum; - // C++ wrapper type for IfcCoolingTowerTypeEnum - typedef ENUMERATION IfcCoolingTowerTypeEnum; - // C++ wrapper type for IfcCostScheduleTypeEnum - typedef ENUMERATION IfcCostScheduleTypeEnum; - // C++ wrapper type for IfcCoveringTypeEnum - typedef ENUMERATION IfcCoveringTypeEnum; - // C++ wrapper type for IfcCurrencyEnum - typedef ENUMERATION IfcCurrencyEnum; - // C++ wrapper type for IfcCurtainWallTypeEnum - typedef ENUMERATION IfcCurtainWallTypeEnum; - // C++ wrapper type for IfcDamperTypeEnum - typedef ENUMERATION IfcDamperTypeEnum; - // C++ wrapper type for IfcDataOriginEnum - typedef ENUMERATION IfcDataOriginEnum; - // C++ wrapper type for IfcDerivedUnitEnum - typedef ENUMERATION IfcDerivedUnitEnum; - // C++ wrapper type for IfcDimensionExtentUsage - typedef ENUMERATION IfcDimensionExtentUsage; - // C++ wrapper type for IfcDirectionSenseEnum - typedef ENUMERATION IfcDirectionSenseEnum; - // C++ wrapper type for IfcDistributionChamberElementTypeEnum - typedef ENUMERATION IfcDistributionChamberElementTypeEnum; - // C++ wrapper type for IfcDocumentConfidentialityEnum - typedef ENUMERATION IfcDocumentConfidentialityEnum; - // C++ wrapper type for IfcDocumentStatusEnum - typedef ENUMERATION IfcDocumentStatusEnum; - // C++ wrapper type for IfcDoorPanelOperationEnum - typedef ENUMERATION IfcDoorPanelOperationEnum; - // C++ wrapper type for IfcDoorPanelPositionEnum - typedef ENUMERATION IfcDoorPanelPositionEnum; - // C++ wrapper type for IfcDoorStyleConstructionEnum - typedef ENUMERATION IfcDoorStyleConstructionEnum; - // C++ wrapper type for IfcDoorStyleOperationEnum - typedef ENUMERATION IfcDoorStyleOperationEnum; - // C++ wrapper type for IfcDuctFittingTypeEnum - typedef ENUMERATION IfcDuctFittingTypeEnum; - // C++ wrapper type for IfcDuctSegmentTypeEnum - typedef ENUMERATION IfcDuctSegmentTypeEnum; - // C++ wrapper type for IfcDuctSilencerTypeEnum - typedef ENUMERATION IfcDuctSilencerTypeEnum; - // C++ wrapper type for IfcElectricApplianceTypeEnum - typedef ENUMERATION IfcElectricApplianceTypeEnum; - // C++ wrapper type for IfcElectricCurrentEnum - typedef ENUMERATION IfcElectricCurrentEnum; - // C++ wrapper type for IfcElectricDistributionPointFunctionEnum - typedef ENUMERATION IfcElectricDistributionPointFunctionEnum; - // C++ wrapper type for IfcElectricFlowStorageDeviceTypeEnum - typedef ENUMERATION IfcElectricFlowStorageDeviceTypeEnum; - // C++ wrapper type for IfcElectricGeneratorTypeEnum - typedef ENUMERATION IfcElectricGeneratorTypeEnum; - // C++ wrapper type for IfcElectricHeaterTypeEnum - typedef ENUMERATION IfcElectricHeaterTypeEnum; - // C++ wrapper type for IfcElectricMotorTypeEnum - typedef ENUMERATION IfcElectricMotorTypeEnum; - // C++ wrapper type for IfcElectricTimeControlTypeEnum - typedef ENUMERATION IfcElectricTimeControlTypeEnum; - // C++ wrapper type for IfcElementAssemblyTypeEnum - typedef ENUMERATION IfcElementAssemblyTypeEnum; - // C++ wrapper type for IfcElementCompositionEnum - typedef ENUMERATION IfcElementCompositionEnum; - // C++ wrapper type for IfcEnergySequenceEnum - typedef ENUMERATION IfcEnergySequenceEnum; - // C++ wrapper type for IfcEnvironmentalImpactCategoryEnum - typedef ENUMERATION IfcEnvironmentalImpactCategoryEnum; - // C++ wrapper type for IfcEvaporativeCoolerTypeEnum - typedef ENUMERATION IfcEvaporativeCoolerTypeEnum; - // C++ wrapper type for IfcEvaporatorTypeEnum - typedef ENUMERATION IfcEvaporatorTypeEnum; - // C++ wrapper type for IfcFanTypeEnum - typedef ENUMERATION IfcFanTypeEnum; - // C++ wrapper type for IfcFilterTypeEnum - typedef ENUMERATION IfcFilterTypeEnum; - // C++ wrapper type for IfcFireSuppressionTerminalTypeEnum - typedef ENUMERATION IfcFireSuppressionTerminalTypeEnum; - // C++ wrapper type for IfcFlowDirectionEnum - typedef ENUMERATION IfcFlowDirectionEnum; - // C++ wrapper type for IfcFlowInstrumentTypeEnum - typedef ENUMERATION IfcFlowInstrumentTypeEnum; - // C++ wrapper type for IfcFlowMeterTypeEnum - typedef ENUMERATION IfcFlowMeterTypeEnum; - // C++ wrapper type for IfcFootingTypeEnum - typedef ENUMERATION IfcFootingTypeEnum; - // C++ wrapper type for IfcGasTerminalTypeEnum - typedef ENUMERATION IfcGasTerminalTypeEnum; - // C++ wrapper type for IfcGeometricProjectionEnum - typedef ENUMERATION IfcGeometricProjectionEnum; - // C++ wrapper type for IfcGlobalOrLocalEnum - typedef ENUMERATION IfcGlobalOrLocalEnum; - // C++ wrapper type for IfcHeatExchangerTypeEnum - typedef ENUMERATION IfcHeatExchangerTypeEnum; - // C++ wrapper type for IfcHumidifierTypeEnum - typedef ENUMERATION IfcHumidifierTypeEnum; - // C++ wrapper type for IfcInternalOrExternalEnum - typedef ENUMERATION IfcInternalOrExternalEnum; - // C++ wrapper type for IfcInventoryTypeEnum - typedef ENUMERATION IfcInventoryTypeEnum; - // C++ wrapper type for IfcJunctionBoxTypeEnum - typedef ENUMERATION IfcJunctionBoxTypeEnum; - // C++ wrapper type for IfcLampTypeEnum - typedef ENUMERATION IfcLampTypeEnum; - // C++ wrapper type for IfcLayerSetDirectionEnum - typedef ENUMERATION IfcLayerSetDirectionEnum; - // C++ wrapper type for IfcLightDistributionCurveEnum - typedef ENUMERATION IfcLightDistributionCurveEnum; - // C++ wrapper type for IfcLightEmissionSourceEnum - typedef ENUMERATION IfcLightEmissionSourceEnum; - // C++ wrapper type for IfcLightFixtureTypeEnum - typedef ENUMERATION IfcLightFixtureTypeEnum; - // C++ wrapper type for IfcLoadGroupTypeEnum - typedef ENUMERATION IfcLoadGroupTypeEnum; - // C++ wrapper type for IfcLogicalOperatorEnum - typedef ENUMERATION IfcLogicalOperatorEnum; - // C++ wrapper type for IfcMemberTypeEnum - typedef ENUMERATION IfcMemberTypeEnum; - // C++ wrapper type for IfcMotorConnectionTypeEnum - typedef ENUMERATION IfcMotorConnectionTypeEnum; - // C++ wrapper type for IfcNullStyle - typedef ENUMERATION IfcNullStyle; - // C++ wrapper type for IfcObjectTypeEnum - typedef ENUMERATION IfcObjectTypeEnum; - // C++ wrapper type for IfcObjectiveEnum - typedef ENUMERATION IfcObjectiveEnum; - // C++ wrapper type for IfcOccupantTypeEnum - typedef ENUMERATION IfcOccupantTypeEnum; - // C++ wrapper type for IfcOutletTypeEnum - typedef ENUMERATION IfcOutletTypeEnum; - // C++ wrapper type for IfcPermeableCoveringOperationEnum - typedef ENUMERATION IfcPermeableCoveringOperationEnum; - // C++ wrapper type for IfcPhysicalOrVirtualEnum - typedef ENUMERATION IfcPhysicalOrVirtualEnum; - // C++ wrapper type for IfcPileConstructionEnum - typedef ENUMERATION IfcPileConstructionEnum; - // C++ wrapper type for IfcPileTypeEnum - typedef ENUMERATION IfcPileTypeEnum; - // C++ wrapper type for IfcPipeFittingTypeEnum - typedef ENUMERATION IfcPipeFittingTypeEnum; - // C++ wrapper type for IfcPipeSegmentTypeEnum - typedef ENUMERATION IfcPipeSegmentTypeEnum; - // C++ wrapper type for IfcPlateTypeEnum - typedef ENUMERATION IfcPlateTypeEnum; - // C++ wrapper type for IfcProcedureTypeEnum - typedef ENUMERATION IfcProcedureTypeEnum; - // C++ wrapper type for IfcProfileTypeEnum - typedef ENUMERATION IfcProfileTypeEnum; - // C++ wrapper type for IfcProjectOrderRecordTypeEnum - typedef ENUMERATION IfcProjectOrderRecordTypeEnum; - // C++ wrapper type for IfcProjectOrderTypeEnum - typedef ENUMERATION IfcProjectOrderTypeEnum; - // C++ wrapper type for IfcProjectedOrTrueLengthEnum - typedef ENUMERATION IfcProjectedOrTrueLengthEnum; - // C++ wrapper type for IfcPropertySourceEnum - typedef ENUMERATION IfcPropertySourceEnum; - // C++ wrapper type for IfcProtectiveDeviceTypeEnum - typedef ENUMERATION IfcProtectiveDeviceTypeEnum; - // C++ wrapper type for IfcPumpTypeEnum - typedef ENUMERATION IfcPumpTypeEnum; - // C++ wrapper type for IfcRailingTypeEnum - typedef ENUMERATION IfcRailingTypeEnum; - // C++ wrapper type for IfcRampFlightTypeEnum - typedef ENUMERATION IfcRampFlightTypeEnum; - // C++ wrapper type for IfcRampTypeEnum - typedef ENUMERATION IfcRampTypeEnum; - // C++ wrapper type for IfcReflectanceMethodEnum - typedef ENUMERATION IfcReflectanceMethodEnum; - // C++ wrapper type for IfcReinforcingBarRoleEnum - typedef ENUMERATION IfcReinforcingBarRoleEnum; - // C++ wrapper type for IfcReinforcingBarSurfaceEnum - typedef ENUMERATION IfcReinforcingBarSurfaceEnum; - // C++ wrapper type for IfcResourceConsumptionEnum - typedef ENUMERATION IfcResourceConsumptionEnum; - // C++ wrapper type for IfcRibPlateDirectionEnum - typedef ENUMERATION IfcRibPlateDirectionEnum; - // C++ wrapper type for IfcRoleEnum - typedef ENUMERATION IfcRoleEnum; - // C++ wrapper type for IfcRoofTypeEnum - typedef ENUMERATION IfcRoofTypeEnum; - // C++ wrapper type for IfcSIPrefix - typedef ENUMERATION IfcSIPrefix; - // C++ wrapper type for IfcSIUnitName - typedef ENUMERATION IfcSIUnitName; - // C++ wrapper type for IfcSanitaryTerminalTypeEnum - typedef ENUMERATION IfcSanitaryTerminalTypeEnum; - // C++ wrapper type for IfcSectionTypeEnum - typedef ENUMERATION IfcSectionTypeEnum; - // C++ wrapper type for IfcSensorTypeEnum - typedef ENUMERATION IfcSensorTypeEnum; - // C++ wrapper type for IfcSequenceEnum - typedef ENUMERATION IfcSequenceEnum; - // C++ wrapper type for IfcServiceLifeFactorTypeEnum - typedef ENUMERATION IfcServiceLifeFactorTypeEnum; - // C++ wrapper type for IfcServiceLifeTypeEnum - typedef ENUMERATION IfcServiceLifeTypeEnum; - // C++ wrapper type for IfcSlabTypeEnum - typedef ENUMERATION IfcSlabTypeEnum; - // C++ wrapper type for IfcSoundScaleEnum - typedef ENUMERATION IfcSoundScaleEnum; - // C++ wrapper type for IfcSpaceHeaterTypeEnum - typedef ENUMERATION IfcSpaceHeaterTypeEnum; - // C++ wrapper type for IfcSpaceTypeEnum - typedef ENUMERATION IfcSpaceTypeEnum; - // C++ wrapper type for IfcStackTerminalTypeEnum - typedef ENUMERATION IfcStackTerminalTypeEnum; - // C++ wrapper type for IfcStairFlightTypeEnum - typedef ENUMERATION IfcStairFlightTypeEnum; - // C++ wrapper type for IfcStairTypeEnum - typedef ENUMERATION IfcStairTypeEnum; - // C++ wrapper type for IfcStateEnum - typedef ENUMERATION IfcStateEnum; - // C++ wrapper type for IfcStructuralCurveTypeEnum - typedef ENUMERATION IfcStructuralCurveTypeEnum; - // C++ wrapper type for IfcStructuralSurfaceTypeEnum - typedef ENUMERATION IfcStructuralSurfaceTypeEnum; - // C++ wrapper type for IfcSurfaceSide - typedef ENUMERATION IfcSurfaceSide; - // C++ wrapper type for IfcSurfaceTextureEnum - typedef ENUMERATION IfcSurfaceTextureEnum; - // C++ wrapper type for IfcSwitchingDeviceTypeEnum - typedef ENUMERATION IfcSwitchingDeviceTypeEnum; - // C++ wrapper type for IfcTankTypeEnum - typedef ENUMERATION IfcTankTypeEnum; - // C++ wrapper type for IfcTendonTypeEnum - typedef ENUMERATION IfcTendonTypeEnum; - // C++ wrapper type for IfcTextPath - typedef ENUMERATION IfcTextPath; - // C++ wrapper type for IfcThermalLoadSourceEnum - typedef ENUMERATION IfcThermalLoadSourceEnum; - // C++ wrapper type for IfcThermalLoadTypeEnum - typedef ENUMERATION IfcThermalLoadTypeEnum; - // C++ wrapper type for IfcTimeSeriesDataTypeEnum - typedef ENUMERATION IfcTimeSeriesDataTypeEnum; - // C++ wrapper type for IfcTimeSeriesScheduleTypeEnum - typedef ENUMERATION IfcTimeSeriesScheduleTypeEnum; - // C++ wrapper type for IfcTransformerTypeEnum - typedef ENUMERATION IfcTransformerTypeEnum; - // C++ wrapper type for IfcTransitionCode - typedef ENUMERATION IfcTransitionCode; - // C++ wrapper type for IfcTransportElementTypeEnum - typedef ENUMERATION IfcTransportElementTypeEnum; - // C++ wrapper type for IfcTrimmingPreference - typedef ENUMERATION IfcTrimmingPreference; - // C++ wrapper type for IfcTubeBundleTypeEnum - typedef ENUMERATION IfcTubeBundleTypeEnum; - // C++ wrapper type for IfcUnitEnum - typedef ENUMERATION IfcUnitEnum; - // C++ wrapper type for IfcUnitaryEquipmentTypeEnum - typedef ENUMERATION IfcUnitaryEquipmentTypeEnum; - // C++ wrapper type for IfcValveTypeEnum - typedef ENUMERATION IfcValveTypeEnum; - // C++ wrapper type for IfcVibrationIsolatorTypeEnum - typedef ENUMERATION IfcVibrationIsolatorTypeEnum; - // C++ wrapper type for IfcWallTypeEnum - typedef ENUMERATION IfcWallTypeEnum; - // C++ wrapper type for IfcWasteTerminalTypeEnum - typedef ENUMERATION IfcWasteTerminalTypeEnum; - // C++ wrapper type for IfcWindowPanelOperationEnum - typedef ENUMERATION IfcWindowPanelOperationEnum; - // C++ wrapper type for IfcWindowPanelPositionEnum - typedef ENUMERATION IfcWindowPanelPositionEnum; - // C++ wrapper type for IfcWindowStyleConstructionEnum - typedef ENUMERATION IfcWindowStyleConstructionEnum; - // C++ wrapper type for IfcWindowStyleOperationEnum - typedef ENUMERATION IfcWindowStyleOperationEnum; - // C++ wrapper type for IfcWorkControlTypeEnum - typedef ENUMERATION IfcWorkControlTypeEnum; - // C++ wrapper type for IfcActorSelect - typedef SELECT IfcActorSelect; - // C++ wrapper type for IfcAppliedValueSelect - typedef SELECT IfcAppliedValueSelect; - // C++ wrapper type for IfcAxis2Placement - typedef SELECT IfcAxis2Placement; - // C++ wrapper type for IfcBooleanOperand - typedef SELECT IfcBooleanOperand; - // C++ wrapper type for IfcCharacterStyleSelect - typedef SELECT IfcCharacterStyleSelect; - // C++ wrapper type for IfcClassificationNotationSelect - typedef SELECT IfcClassificationNotationSelect; - // C++ wrapper type for IfcColour - typedef SELECT IfcColour; - // C++ wrapper type for IfcColourOrFactor - typedef SELECT IfcColourOrFactor; - // C++ wrapper type for IfcConditionCriterionSelect - typedef SELECT IfcConditionCriterionSelect; - // C++ wrapper type for IfcCsgSelect - typedef SELECT IfcCsgSelect; - // C++ wrapper type for IfcCurveFontOrScaledCurveFontSelect - typedef SELECT IfcCurveFontOrScaledCurveFontSelect; - // C++ wrapper type for IfcCurveOrEdgeCurve - typedef SELECT IfcCurveOrEdgeCurve; - // C++ wrapper type for IfcCurveStyleFontSelect - typedef SELECT IfcCurveStyleFontSelect; - // C++ wrapper type for IfcDateTimeSelect - typedef SELECT IfcDateTimeSelect; - // C++ wrapper type for IfcDefinedSymbolSelect - typedef SELECT IfcDefinedSymbolSelect; - // C++ wrapper type for IfcDerivedMeasureValue - typedef SELECT IfcDerivedMeasureValue; - // C++ wrapper type for IfcDocumentSelect - typedef SELECT IfcDocumentSelect; - // C++ wrapper type for IfcDraughtingCalloutElement - typedef SELECT IfcDraughtingCalloutElement; - // C++ wrapper type for IfcFillAreaStyleTileShapeSelect - typedef SELECT IfcFillAreaStyleTileShapeSelect; - // C++ wrapper type for IfcFillStyleSelect - typedef SELECT IfcFillStyleSelect; - // C++ wrapper type for IfcGeometricSetSelect - typedef SELECT IfcGeometricSetSelect; - // C++ wrapper type for IfcHatchLineDistanceSelect - typedef SELECT IfcHatchLineDistanceSelect; - // C++ wrapper type for IfcLayeredItem - typedef SELECT IfcLayeredItem; - // C++ wrapper type for IfcLibrarySelect - typedef SELECT IfcLibrarySelect; - // C++ wrapper type for IfcLightDistributionDataSourceSelect - typedef SELECT IfcLightDistributionDataSourceSelect; - // C++ wrapper type for IfcMaterialSelect - typedef SELECT IfcMaterialSelect; - // C++ wrapper type for IfcMeasureValue - typedef SELECT IfcMeasureValue; - // C++ wrapper type for IfcMetricValueSelect - typedef SELECT IfcMetricValueSelect; - // C++ wrapper type for IfcObjectReferenceSelect - typedef SELECT IfcObjectReferenceSelect; - // C++ wrapper type for IfcOrientationSelect - typedef SELECT IfcOrientationSelect; - // C++ wrapper type for IfcPointOrVertexPoint - typedef SELECT IfcPointOrVertexPoint; - // C++ wrapper type for IfcPresentationStyleSelect - typedef SELECT IfcPresentationStyleSelect; - // C++ wrapper type for IfcShell - typedef SELECT IfcShell; - // C++ wrapper type for IfcSimpleValue - typedef SELECT IfcSimpleValue; - // C++ wrapper type for IfcSizeSelect - typedef SELECT IfcSizeSelect; - // C++ wrapper type for IfcSpecularHighlightSelect - typedef SELECT IfcSpecularHighlightSelect; - // C++ wrapper type for IfcStructuralActivityAssignmentSelect - typedef SELECT IfcStructuralActivityAssignmentSelect; - // C++ wrapper type for IfcSurfaceOrFaceSurface - typedef SELECT IfcSurfaceOrFaceSurface; - // C++ wrapper type for IfcSurfaceStyleElementSelect - typedef SELECT IfcSurfaceStyleElementSelect; - // C++ wrapper type for IfcSymbolStyleSelect - typedef SELECT IfcSymbolStyleSelect; - // C++ wrapper type for IfcTextFontSelect - typedef SELECT IfcTextFontSelect; - // C++ wrapper type for IfcTextStyleSelect - typedef SELECT IfcTextStyleSelect; - // C++ wrapper type for IfcTrimmingSelect - typedef SELECT IfcTrimmingSelect; - // C++ wrapper type for IfcUnit - typedef SELECT IfcUnit; - // C++ wrapper type for IfcValue - typedef SELECT IfcValue; - // C++ wrapper type for IfcVectorOrDirection - typedef SELECT IfcVectorOrDirection; - - - // ****************************************************************************** - // IFC Entities - // ****************************************************************************** - - struct IfcRepresentationItem; - struct IfcGeometricRepresentationItem; - struct IfcCurve; - struct IfcBoundedCurve; - struct IfcCompositeCurve; - struct Ifc2DCompositeCurve; - struct IfcRoot; - struct IfcObjectDefinition; - struct IfcObject; - struct IfcControl; - struct IfcActionRequest; - struct IfcActor; - typedef NotImplemented IfcActorRole; // (not currently used by Assimp) - struct IfcTypeObject; - struct IfcTypeProduct; - struct IfcElementType; - struct IfcDistributionElementType; - struct IfcDistributionControlElementType; - struct IfcActuatorType; - typedef NotImplemented IfcAddress; // (not currently used by Assimp) - struct IfcDistributionFlowElementType; - struct IfcFlowControllerType; - struct IfcAirTerminalBoxType; - struct IfcFlowTerminalType; - struct IfcAirTerminalType; - struct IfcEnergyConversionDeviceType; - struct IfcAirToAirHeatRecoveryType; - struct IfcAlarmType; - struct IfcDraughtingCallout; - struct IfcDimensionCurveDirectedCallout; - struct IfcAngularDimension; - struct IfcProduct; - struct IfcAnnotation; - struct IfcStyledItem; - struct IfcAnnotationOccurrence; - struct IfcAnnotationCurveOccurrence; - struct IfcAnnotationFillArea; - struct IfcAnnotationFillAreaOccurrence; - struct IfcAnnotationSurface; - struct IfcAnnotationSurfaceOccurrence; - struct IfcAnnotationSymbolOccurrence; - struct IfcAnnotationTextOccurrence; - typedef NotImplemented IfcApplication; // (not currently used by Assimp) - typedef NotImplemented IfcAppliedValue; // (not currently used by Assimp) - typedef NotImplemented IfcAppliedValueRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcApproval; // (not currently used by Assimp) - typedef NotImplemented IfcApprovalActorRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcApprovalPropertyRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcApprovalRelationship; // (not currently used by Assimp) - struct IfcProfileDef; - struct IfcArbitraryClosedProfileDef; - struct IfcArbitraryOpenProfileDef; - struct IfcArbitraryProfileDefWithVoids; - struct IfcGroup; - struct IfcAsset; - struct IfcParameterizedProfileDef; - struct IfcIShapeProfileDef; - struct IfcAsymmetricIShapeProfileDef; - struct IfcPlacement; - struct IfcAxis1Placement; - struct IfcAxis2Placement2D; - struct IfcAxis2Placement3D; - struct IfcBSplineCurve; - struct IfcElement; - struct IfcBuildingElement; - struct IfcBeam; - struct IfcBuildingElementType; - struct IfcBeamType; - struct IfcBezierCurve; - typedef NotImplemented IfcSurfaceTexture; // (not currently used by Assimp) - typedef NotImplemented IfcBlobTexture; // (not currently used by Assimp) - struct IfcCsgPrimitive3D; - struct IfcBlock; - struct IfcBoilerType; - struct IfcBooleanResult; - struct IfcBooleanClippingResult; - typedef NotImplemented IfcBoundaryCondition; // (not currently used by Assimp) - typedef NotImplemented IfcBoundaryEdgeCondition; // (not currently used by Assimp) - typedef NotImplemented IfcBoundaryFaceCondition; // (not currently used by Assimp) - typedef NotImplemented IfcBoundaryNodeCondition; // (not currently used by Assimp) - typedef NotImplemented IfcBoundaryNodeConditionWarping; // (not currently used by Assimp) - struct IfcSurface; - struct IfcBoundedSurface; - struct IfcBoundingBox; - struct IfcHalfSpaceSolid; - struct IfcBoxedHalfSpace; - struct IfcSpatialStructureElement; - struct IfcBuilding; - struct IfcBuildingElementComponent; - struct IfcBuildingElementPart; - struct IfcBuildingElementProxy; - struct IfcBuildingElementProxyType; - struct IfcBuildingStorey; - struct IfcCShapeProfileDef; - struct IfcFlowFittingType; - struct IfcCableCarrierFittingType; - struct IfcFlowSegmentType; - struct IfcCableCarrierSegmentType; - struct IfcCableSegmentType; - typedef NotImplemented IfcCalendarDate; // (not currently used by Assimp) - struct IfcPoint; - struct IfcCartesianPoint; - struct IfcCartesianTransformationOperator; - struct IfcCartesianTransformationOperator2D; - struct IfcCartesianTransformationOperator2DnonUniform; - struct IfcCartesianTransformationOperator3D; - struct IfcCartesianTransformationOperator3DnonUniform; - struct IfcCenterLineProfileDef; - struct IfcFeatureElement; - struct IfcFeatureElementSubtraction; - struct IfcEdgeFeature; - struct IfcChamferEdgeFeature; - struct IfcChillerType; - struct IfcConic; - struct IfcCircle; - struct IfcCircleProfileDef; - struct IfcCircleHollowProfileDef; - typedef NotImplemented IfcClassification; // (not currently used by Assimp) - typedef NotImplemented IfcClassificationItem; // (not currently used by Assimp) - typedef NotImplemented IfcClassificationItemRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcClassificationNotation; // (not currently used by Assimp) - typedef NotImplemented IfcClassificationNotationFacet; // (not currently used by Assimp) - typedef NotImplemented IfcExternalReference; // (not currently used by Assimp) - typedef NotImplemented IfcClassificationReference; // (not currently used by Assimp) - struct IfcTopologicalRepresentationItem; - struct IfcConnectedFaceSet; - struct IfcClosedShell; - struct IfcCoilType; - struct IfcColourSpecification; - struct IfcColourRgb; - struct IfcColumn; - struct IfcColumnType; - struct IfcProperty; - struct IfcComplexProperty; - struct IfcCompositeCurveSegment; - struct IfcCompositeProfileDef; - struct IfcFlowMovingDeviceType; - struct IfcCompressorType; - struct IfcCondenserType; - struct IfcCondition; - struct IfcConditionCriterion; - typedef NotImplemented IfcConnectionGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionCurveGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionPointGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionPointEccentricity; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionPortGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionSurfaceGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConstraint; // (not currently used by Assimp) - typedef NotImplemented IfcConstraintAggregationRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcConstraintClassificationRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcConstraintRelationship; // (not currently used by Assimp) - struct IfcResource; - struct IfcConstructionResource; - struct IfcConstructionEquipmentResource; - struct IfcConstructionMaterialResource; - struct IfcConstructionProductResource; - struct IfcNamedUnit; - struct IfcContextDependentUnit; - struct IfcControllerType; - struct IfcConversionBasedUnit; - struct IfcCooledBeamType; - struct IfcCoolingTowerType; - typedef NotImplemented IfcCoordinatedUniversalTimeOffset; // (not currently used by Assimp) - struct IfcCostItem; - struct IfcCostSchedule; - typedef NotImplemented IfcCostValue; // (not currently used by Assimp) - struct IfcCovering; - struct IfcCoveringType; - struct IfcCraneRailAShapeProfileDef; - struct IfcCraneRailFShapeProfileDef; - struct IfcCrewResource; - struct IfcSolidModel; - struct IfcCsgSolid; - typedef NotImplemented IfcCurrencyRelationship; // (not currently used by Assimp) - struct IfcCurtainWall; - struct IfcCurtainWallType; - struct IfcCurveBoundedPlane; - struct IfcPresentationStyle; - typedef NotImplemented IfcCurveStyle; // (not currently used by Assimp) - typedef NotImplemented IfcCurveStyleFont; // (not currently used by Assimp) - typedef NotImplemented IfcCurveStyleFontAndScaling; // (not currently used by Assimp) - typedef NotImplemented IfcCurveStyleFontPattern; // (not currently used by Assimp) - struct IfcDamperType; - typedef NotImplemented IfcDateAndTime; // (not currently used by Assimp) - struct IfcDefinedSymbol; - struct IfcDerivedProfileDef; - typedef NotImplemented IfcDerivedUnit; // (not currently used by Assimp) - typedef NotImplemented IfcDerivedUnitElement; // (not currently used by Assimp) - struct IfcDiameterDimension; - typedef NotImplemented IfcDraughtingCalloutRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcDimensionCalloutRelationship; // (not currently used by Assimp) - struct IfcDimensionCurve; - struct IfcTerminatorSymbol; - struct IfcDimensionCurveTerminator; - typedef NotImplemented IfcDimensionPair; // (not currently used by Assimp) - typedef NotImplemented IfcDimensionalExponents; // (not currently used by Assimp) - struct IfcDirection; - struct IfcElementComponent; - struct IfcDiscreteAccessory; - struct IfcElementComponentType; - struct IfcDiscreteAccessoryType; - struct IfcDistributionElement; - struct IfcDistributionFlowElement; - struct IfcDistributionChamberElement; - struct IfcDistributionChamberElementType; - struct IfcDistributionControlElement; - struct IfcPort; - struct IfcDistributionPort; - typedef NotImplemented IfcDocumentElectronicFormat; // (not currently used by Assimp) - typedef NotImplemented IfcDocumentInformation; // (not currently used by Assimp) - typedef NotImplemented IfcDocumentInformationRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcDocumentReference; // (not currently used by Assimp) - struct IfcDoor; - struct IfcPropertyDefinition; - struct IfcPropertySetDefinition; - typedef NotImplemented IfcDoorLiningProperties; // (not currently used by Assimp) - typedef NotImplemented IfcDoorPanelProperties; // (not currently used by Assimp) - struct IfcDoorStyle; - typedef NotImplemented IfcPreDefinedItem; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedColour; // (not currently used by Assimp) - typedef NotImplemented IfcDraughtingPreDefinedColour; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedCurveFont; // (not currently used by Assimp) - typedef NotImplemented IfcDraughtingPreDefinedCurveFont; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedTextFont; // (not currently used by Assimp) - typedef NotImplemented IfcDraughtingPreDefinedTextFont; // (not currently used by Assimp) - struct IfcDuctFittingType; - struct IfcDuctSegmentType; - struct IfcFlowTreatmentDeviceType; - struct IfcDuctSilencerType; - struct IfcEdge; - struct IfcEdgeCurve; - struct IfcLoop; - struct IfcEdgeLoop; - struct IfcElectricApplianceType; - struct IfcFlowController; - struct IfcElectricDistributionPoint; - struct IfcFlowStorageDeviceType; - struct IfcElectricFlowStorageDeviceType; - struct IfcElectricGeneratorType; - struct IfcElectricHeaterType; - struct IfcElectricMotorType; - struct IfcElectricTimeControlType; - typedef NotImplemented IfcEnergyProperties; // (not currently used by Assimp) - typedef NotImplemented IfcElectricalBaseProperties; // (not currently used by Assimp) - struct IfcSystem; - struct IfcElectricalCircuit; - struct IfcElectricalElement; - struct IfcElementAssembly; - struct IfcElementQuantity; - struct IfcElementarySurface; - struct IfcEllipse; - struct IfcEllipseProfileDef; - struct IfcEnergyConversionDevice; - typedef NotImplemented IfcEnvironmentalImpactValue; // (not currently used by Assimp) - struct IfcEquipmentElement; - struct IfcEquipmentStandard; - struct IfcEvaporativeCoolerType; - struct IfcEvaporatorType; - typedef NotImplemented IfcMaterialProperties; // (not currently used by Assimp) - typedef NotImplemented IfcExtendedMaterialProperties; // (not currently used by Assimp) - typedef NotImplemented IfcExternallyDefinedHatchStyle; // (not currently used by Assimp) - typedef NotImplemented IfcExternallyDefinedSurfaceStyle; // (not currently used by Assimp) - typedef NotImplemented IfcExternallyDefinedSymbol; // (not currently used by Assimp) - typedef NotImplemented IfcExternallyDefinedTextFont; // (not currently used by Assimp) - struct IfcSweptAreaSolid; - struct IfcExtrudedAreaSolid; - struct IfcFace; - struct IfcFaceBasedSurfaceModel; - struct IfcFaceBound; - struct IfcFaceOuterBound; - struct IfcFaceSurface; - struct IfcManifoldSolidBrep; - struct IfcFacetedBrep; - struct IfcFacetedBrepWithVoids; - typedef NotImplemented IfcStructuralConnectionCondition; // (not currently used by Assimp) - typedef NotImplemented IfcFailureConnectionCondition; // (not currently used by Assimp) - struct IfcFanType; - struct IfcFastener; - struct IfcFastenerType; - struct IfcFeatureElementAddition; - typedef NotImplemented IfcFillAreaStyle; // (not currently used by Assimp) - struct IfcFillAreaStyleHatching; - struct IfcFillAreaStyleTileSymbolWithStyle; - struct IfcFillAreaStyleTiles; - struct IfcFilterType; - struct IfcFireSuppressionTerminalType; - struct IfcFlowFitting; - struct IfcFlowInstrumentType; - struct IfcFlowMeterType; - struct IfcFlowMovingDevice; - struct IfcFlowSegment; - struct IfcFlowStorageDevice; - struct IfcFlowTerminal; - struct IfcFlowTreatmentDevice; - typedef NotImplemented IfcFluidFlowProperties; // (not currently used by Assimp) - struct IfcFooting; - typedef NotImplemented IfcFuelProperties; // (not currently used by Assimp) - struct IfcFurnishingElement; - struct IfcFurnishingElementType; - struct IfcFurnitureStandard; - struct IfcFurnitureType; - struct IfcGasTerminalType; - typedef NotImplemented IfcGeneralMaterialProperties; // (not currently used by Assimp) - typedef NotImplemented IfcProfileProperties; // (not currently used by Assimp) - typedef NotImplemented IfcGeneralProfileProperties; // (not currently used by Assimp) - struct IfcGeometricSet; - struct IfcGeometricCurveSet; - struct IfcRepresentationContext; - struct IfcGeometricRepresentationContext; - struct IfcGeometricRepresentationSubContext; - struct IfcGrid; - typedef NotImplemented IfcGridAxis; // (not currently used by Assimp) - struct IfcObjectPlacement; - struct IfcGridPlacement; - struct IfcHeatExchangerType; - struct IfcHumidifierType; - typedef NotImplemented IfcHygroscopicMaterialProperties; // (not currently used by Assimp) - typedef NotImplemented IfcImageTexture; // (not currently used by Assimp) - struct IfcInventory; - typedef NotImplemented IfcTimeSeries; // (not currently used by Assimp) - typedef NotImplemented IfcIrregularTimeSeries; // (not currently used by Assimp) - typedef NotImplemented IfcIrregularTimeSeriesValue; // (not currently used by Assimp) - struct IfcJunctionBoxType; - struct IfcLShapeProfileDef; - struct IfcLaborResource; - struct IfcLampType; - typedef NotImplemented IfcLibraryInformation; // (not currently used by Assimp) - typedef NotImplemented IfcLibraryReference; // (not currently used by Assimp) - typedef NotImplemented IfcLightDistributionData; // (not currently used by Assimp) - struct IfcLightFixtureType; - typedef NotImplemented IfcLightIntensityDistribution; // (not currently used by Assimp) - struct IfcLightSource; - struct IfcLightSourceAmbient; - struct IfcLightSourceDirectional; - struct IfcLightSourceGoniometric; - struct IfcLightSourcePositional; - struct IfcLightSourceSpot; - struct IfcLine; - struct IfcLinearDimension; - struct IfcLocalPlacement; - typedef NotImplemented IfcLocalTime; // (not currently used by Assimp) - struct IfcMappedItem; - typedef NotImplemented IfcMaterial; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialClassificationRelationship; // (not currently used by Assimp) - struct IfcProductRepresentation; - struct IfcMaterialDefinitionRepresentation; - typedef NotImplemented IfcMaterialLayer; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialLayerSet; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialLayerSetUsage; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialList; // (not currently used by Assimp) - struct IfcMeasureWithUnit; - typedef NotImplemented IfcMechanicalMaterialProperties; // (not currently used by Assimp) - typedef NotImplemented IfcMechanicalConcreteMaterialProperties; // (not currently used by Assimp) - struct IfcMechanicalFastener; - struct IfcMechanicalFastenerType; - typedef NotImplemented IfcMechanicalSteelMaterialProperties; // (not currently used by Assimp) - struct IfcMember; - struct IfcMemberType; - typedef NotImplemented IfcMetric; // (not currently used by Assimp) - typedef NotImplemented IfcMonetaryUnit; // (not currently used by Assimp) - struct IfcMotorConnectionType; - struct IfcProcess; - struct IfcTask; - struct IfcMove; - typedef NotImplemented IfcObjective; // (not currently used by Assimp) - struct IfcOccupant; - struct IfcOffsetCurve2D; - struct IfcOffsetCurve3D; - struct IfcOneDirectionRepeatFactor; - struct IfcOpenShell; - struct IfcOpeningElement; - typedef NotImplemented IfcOpticalMaterialProperties; // (not currently used by Assimp) - struct IfcOrderAction; - typedef NotImplemented IfcOrganization; // (not currently used by Assimp) - typedef NotImplemented IfcOrganizationRelationship; // (not currently used by Assimp) - struct IfcOrientedEdge; - struct IfcOutletType; - typedef NotImplemented IfcOwnerHistory; // (not currently used by Assimp) - struct IfcPath; - struct IfcPerformanceHistory; - typedef NotImplemented IfcPermeableCoveringProperties; // (not currently used by Assimp) - struct IfcPermit; - typedef NotImplemented IfcPerson; // (not currently used by Assimp) - typedef NotImplemented IfcPersonAndOrganization; // (not currently used by Assimp) - typedef NotImplemented IfcPhysicalQuantity; // (not currently used by Assimp) - typedef NotImplemented IfcPhysicalComplexQuantity; // (not currently used by Assimp) - typedef NotImplemented IfcPhysicalSimpleQuantity; // (not currently used by Assimp) - struct IfcPile; - struct IfcPipeFittingType; - struct IfcPipeSegmentType; - typedef NotImplemented IfcPixelTexture; // (not currently used by Assimp) - struct IfcPlanarExtent; - struct IfcPlanarBox; - struct IfcPlane; - struct IfcPlate; - struct IfcPlateType; - struct IfcPointOnCurve; - struct IfcPointOnSurface; - struct IfcPolyLoop; - struct IfcPolygonalBoundedHalfSpace; - struct IfcPolyline; - typedef NotImplemented IfcPostalAddress; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedSymbol; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedDimensionSymbol; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedPointMarkerSymbol; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedTerminatorSymbol; // (not currently used by Assimp) - typedef NotImplemented IfcPresentationLayerAssignment; // (not currently used by Assimp) - typedef NotImplemented IfcPresentationLayerWithStyle; // (not currently used by Assimp) - struct IfcPresentationStyleAssignment; - struct IfcProcedure; - struct IfcProductDefinitionShape; - typedef NotImplemented IfcProductsOfCombustionProperties; // (not currently used by Assimp) - struct IfcProject; - struct IfcProjectOrder; - struct IfcProjectOrderRecord; - struct IfcProjectionCurve; - struct IfcProjectionElement; - struct IfcSimpleProperty; - struct IfcPropertyBoundedValue; - typedef NotImplemented IfcPropertyConstraintRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcPropertyDependencyRelationship; // (not currently used by Assimp) - struct IfcPropertyEnumeratedValue; - typedef NotImplemented IfcPropertyEnumeration; // (not currently used by Assimp) - struct IfcPropertyListValue; - struct IfcPropertyReferenceValue; - struct IfcPropertySet; - struct IfcPropertySingleValue; - struct IfcPropertyTableValue; - struct IfcProtectiveDeviceType; - struct IfcProxy; - struct IfcPumpType; - typedef NotImplemented IfcQuantityArea; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityCount; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityLength; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityTime; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityVolume; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityWeight; // (not currently used by Assimp) - struct IfcRadiusDimension; - struct IfcRailing; - struct IfcRailingType; - struct IfcRamp; - struct IfcRampFlight; - struct IfcRampFlightType; - struct IfcRationalBezierCurve; - struct IfcRectangleProfileDef; - struct IfcRectangleHollowProfileDef; - struct IfcRectangularPyramid; - struct IfcRectangularTrimmedSurface; - typedef NotImplemented IfcReferencesValueDocument; // (not currently used by Assimp) - typedef NotImplemented IfcRegularTimeSeries; // (not currently used by Assimp) - typedef NotImplemented IfcReinforcementBarProperties; // (not currently used by Assimp) - typedef NotImplemented IfcReinforcementDefinitionProperties; // (not currently used by Assimp) - struct IfcReinforcingElement; - struct IfcReinforcingBar; - struct IfcReinforcingMesh; - struct IfcRelationship; - struct IfcRelDecomposes; - struct IfcRelAggregates; - typedef NotImplemented IfcRelAssigns; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToControl; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsTasks; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToActor; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToGroup; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToProcess; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToProduct; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToProjectOrder; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToResource; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociates; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesAppliedValue; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesApproval; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesClassification; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesConstraint; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesDocument; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesLibrary; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesMaterial; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesProfileProperties; // (not currently used by Assimp) - struct IfcRelConnects; - typedef NotImplemented IfcRelConnectsElements; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsPathElements; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsPortToElement; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsPorts; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsStructuralActivity; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsStructuralElement; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsStructuralMember; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsWithEccentricity; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsWithRealizingElements; // (not currently used by Assimp) - struct IfcRelContainedInSpatialStructure; - typedef NotImplemented IfcRelCoversBldgElements; // (not currently used by Assimp) - typedef NotImplemented IfcRelCoversSpaces; // (not currently used by Assimp) - struct IfcRelDefines; - struct IfcRelDefinesByProperties; - typedef NotImplemented IfcRelDefinesByType; // (not currently used by Assimp) - struct IfcRelFillsElement; - typedef NotImplemented IfcRelFlowControlElements; // (not currently used by Assimp) - typedef NotImplemented IfcRelInteractionRequirements; // (not currently used by Assimp) - typedef NotImplemented IfcRelNests; // (not currently used by Assimp) - typedef NotImplemented IfcRelOccupiesSpaces; // (not currently used by Assimp) - struct IfcRelOverridesProperties; - typedef NotImplemented IfcRelProjectsElement; // (not currently used by Assimp) - typedef NotImplemented IfcRelReferencedInSpatialStructure; // (not currently used by Assimp) - typedef NotImplemented IfcRelSchedulesCostItems; // (not currently used by Assimp) - typedef NotImplemented IfcRelSequence; // (not currently used by Assimp) - typedef NotImplemented IfcRelServicesBuildings; // (not currently used by Assimp) - typedef NotImplemented IfcRelSpaceBoundary; // (not currently used by Assimp) - struct IfcRelVoidsElement; - typedef NotImplemented IfcRelaxation; // (not currently used by Assimp) - struct IfcRepresentation; - struct IfcRepresentationMap; - struct IfcRevolvedAreaSolid; - typedef NotImplemented IfcRibPlateProfileProperties; // (not currently used by Assimp) - struct IfcRightCircularCone; - struct IfcRightCircularCylinder; - struct IfcRoof; - struct IfcRoundedEdgeFeature; - struct IfcRoundedRectangleProfileDef; - struct IfcSIUnit; - struct IfcSanitaryTerminalType; - struct IfcScheduleTimeControl; - typedef NotImplemented IfcSectionProperties; // (not currently used by Assimp) - typedef NotImplemented IfcSectionReinforcementProperties; // (not currently used by Assimp) - struct IfcSectionedSpine; - struct IfcSensorType; - struct IfcServiceLife; - typedef NotImplemented IfcServiceLifeFactor; // (not currently used by Assimp) - typedef NotImplemented IfcShapeAspect; // (not currently used by Assimp) - struct IfcShapeModel; - struct IfcShapeRepresentation; - struct IfcShellBasedSurfaceModel; - struct IfcSite; - struct IfcSlab; - struct IfcSlabType; - typedef NotImplemented IfcSlippageConnectionCondition; // (not currently used by Assimp) - typedef NotImplemented IfcSoundProperties; // (not currently used by Assimp) - typedef NotImplemented IfcSoundValue; // (not currently used by Assimp) - struct IfcSpace; - struct IfcSpaceHeaterType; - struct IfcSpaceProgram; - typedef NotImplemented IfcSpaceThermalLoadProperties; // (not currently used by Assimp) - struct IfcSpatialStructureElementType; - struct IfcSpaceType; - struct IfcSphere; - struct IfcStackTerminalType; - struct IfcStair; - struct IfcStairFlight; - struct IfcStairFlightType; - struct IfcStructuralActivity; - struct IfcStructuralAction; - struct IfcStructuralAnalysisModel; - struct IfcStructuralItem; - struct IfcStructuralConnection; - struct IfcStructuralCurveConnection; - struct IfcStructuralMember; - struct IfcStructuralCurveMember; - struct IfcStructuralCurveMemberVarying; - struct IfcStructuralLinearAction; - struct IfcStructuralLinearActionVarying; - typedef NotImplemented IfcStructuralLoad; // (not currently used by Assimp) - struct IfcStructuralLoadGroup; - typedef NotImplemented IfcStructuralLoadStatic; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadLinearForce; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadPlanarForce; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadSingleDisplacement; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadSingleDisplacementDistortion; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadSingleForce; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadSingleForceWarping; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadTemperature; // (not currently used by Assimp) - struct IfcStructuralPlanarAction; - struct IfcStructuralPlanarActionVarying; - struct IfcStructuralPointAction; - struct IfcStructuralPointConnection; - struct IfcStructuralReaction; - struct IfcStructuralPointReaction; - typedef NotImplemented IfcStructuralProfileProperties; // (not currently used by Assimp) - struct IfcStructuralResultGroup; - typedef NotImplemented IfcStructuralSteelProfileProperties; // (not currently used by Assimp) - struct IfcStructuralSurfaceConnection; - struct IfcStructuralSurfaceMember; - struct IfcStructuralSurfaceMemberVarying; - struct IfcStructuredDimensionCallout; - struct IfcStyleModel; - struct IfcStyledRepresentation; - struct IfcSubContractResource; - struct IfcSubedge; - struct IfcSurfaceCurveSweptAreaSolid; - struct IfcSweptSurface; - struct IfcSurfaceOfLinearExtrusion; - struct IfcSurfaceOfRevolution; - struct IfcSurfaceStyle; - typedef NotImplemented IfcSurfaceStyleLighting; // (not currently used by Assimp) - typedef NotImplemented IfcSurfaceStyleRefraction; // (not currently used by Assimp) - struct IfcSurfaceStyleShading; - struct IfcSurfaceStyleRendering; - struct IfcSurfaceStyleWithTextures; - struct IfcSweptDiskSolid; - struct IfcSwitchingDeviceType; - typedef NotImplemented IfcSymbolStyle; // (not currently used by Assimp) - struct IfcSystemFurnitureElementType; - struct IfcTShapeProfileDef; - typedef NotImplemented IfcTable; // (not currently used by Assimp) - typedef NotImplemented IfcTableRow; // (not currently used by Assimp) - struct IfcTankType; - typedef NotImplemented IfcTelecomAddress; // (not currently used by Assimp) - struct IfcTendon; - struct IfcTendonAnchor; - struct IfcTextLiteral; - struct IfcTextLiteralWithExtent; - typedef NotImplemented IfcTextStyle; // (not currently used by Assimp) - typedef NotImplemented IfcTextStyleFontModel; // (not currently used by Assimp) - typedef NotImplemented IfcTextStyleForDefinedFont; // (not currently used by Assimp) - typedef NotImplemented IfcTextStyleTextModel; // (not currently used by Assimp) - typedef NotImplemented IfcTextStyleWithBoxCharacteristics; // (not currently used by Assimp) - typedef NotImplemented IfcTextureCoordinate; // (not currently used by Assimp) - typedef NotImplemented IfcTextureCoordinateGenerator; // (not currently used by Assimp) - typedef NotImplemented IfcTextureMap; // (not currently used by Assimp) - typedef NotImplemented IfcTextureVertex; // (not currently used by Assimp) - typedef NotImplemented IfcThermalMaterialProperties; // (not currently used by Assimp) - typedef NotImplemented IfcTimeSeriesReferenceRelationship; // (not currently used by Assimp) - struct IfcTimeSeriesSchedule; - typedef NotImplemented IfcTimeSeriesValue; // (not currently used by Assimp) - struct IfcTopologyRepresentation; - struct IfcTransformerType; - struct IfcTransportElement; - struct IfcTransportElementType; - struct IfcTrapeziumProfileDef; - struct IfcTrimmedCurve; - struct IfcTubeBundleType; - struct IfcTwoDirectionRepeatFactor; - struct IfcUShapeProfileDef; - struct IfcUnitAssignment; - struct IfcUnitaryEquipmentType; - struct IfcValveType; - struct IfcVector; - struct IfcVertex; - typedef NotImplemented IfcVertexBasedTextureMap; // (not currently used by Assimp) - struct IfcVertexLoop; - struct IfcVertexPoint; - struct IfcVibrationIsolatorType; - struct IfcVirtualElement; - typedef NotImplemented IfcVirtualGridIntersection; // (not currently used by Assimp) - struct IfcWall; - struct IfcWallStandardCase; - struct IfcWallType; - struct IfcWasteTerminalType; - typedef NotImplemented IfcWaterProperties; // (not currently used by Assimp) - struct IfcWindow; - typedef NotImplemented IfcWindowLiningProperties; // (not currently used by Assimp) - typedef NotImplemented IfcWindowPanelProperties; // (not currently used by Assimp) - struct IfcWindowStyle; - struct IfcWorkControl; - struct IfcWorkPlan; - struct IfcWorkSchedule; - struct IfcZShapeProfileDef; - struct IfcZone; - - - - // C++ wrapper for IfcRepresentationItem - struct IfcRepresentationItem : ObjectHelper { IfcRepresentationItem() : Object("IfcRepresentationItem") {} - - }; - - // C++ wrapper for IfcGeometricRepresentationItem - struct IfcGeometricRepresentationItem : IfcRepresentationItem, ObjectHelper { IfcGeometricRepresentationItem() : Object("IfcGeometricRepresentationItem") {} - - }; - - // C++ wrapper for IfcCurve - struct IfcCurve : IfcGeometricRepresentationItem, ObjectHelper { IfcCurve() : Object("IfcCurve") {} - - }; - - // C++ wrapper for IfcBoundedCurve - struct IfcBoundedCurve : IfcCurve, ObjectHelper { IfcBoundedCurve() : Object("IfcBoundedCurve") {} - - }; - - // C++ wrapper for IfcCompositeCurve - struct IfcCompositeCurve : IfcBoundedCurve, ObjectHelper { IfcCompositeCurve() : Object("IfcCompositeCurve") {} - ListOf< Lazy< IfcCompositeCurveSegment >, 1, 0 > Segments; - LOGICAL::Out SelfIntersect; - }; - - // C++ wrapper for Ifc2DCompositeCurve - struct Ifc2DCompositeCurve : IfcCompositeCurve, ObjectHelper { Ifc2DCompositeCurve() : Object("Ifc2DCompositeCurve") {} - - }; - - // C++ wrapper for IfcRoot - struct IfcRoot : ObjectHelper { IfcRoot() : Object("IfcRoot") {} - IfcGloballyUniqueId::Out GlobalId; - Lazy< NotImplemented > OwnerHistory; - Maybe< IfcLabel::Out > Name; - Maybe< IfcText::Out > Description; - }; - - // C++ wrapper for IfcObjectDefinition - struct IfcObjectDefinition : IfcRoot, ObjectHelper { IfcObjectDefinition() : Object("IfcObjectDefinition") {} - - }; - - // C++ wrapper for IfcObject - struct IfcObject : IfcObjectDefinition, ObjectHelper { IfcObject() : Object("IfcObject") {} - Maybe< IfcLabel::Out > ObjectType; - }; - - // C++ wrapper for IfcControl - struct IfcControl : IfcObject, ObjectHelper { IfcControl() : Object("IfcControl") {} - - }; - - // C++ wrapper for IfcActionRequest - struct IfcActionRequest : IfcControl, ObjectHelper { IfcActionRequest() : Object("IfcActionRequest") {} - IfcIdentifier::Out RequestID; - }; - - // C++ wrapper for IfcActor - struct IfcActor : IfcObject, ObjectHelper { IfcActor() : Object("IfcActor") {} - IfcActorSelect::Out TheActor; - }; - - // C++ wrapper for IfcTypeObject - struct IfcTypeObject : IfcObjectDefinition, ObjectHelper { IfcTypeObject() : Object("IfcTypeObject") {} - Maybe< IfcLabel::Out > ApplicableOccurrence; - Maybe< ListOf< Lazy< IfcPropertySetDefinition >, 1, 0 > > HasPropertySets; - }; - - // C++ wrapper for IfcTypeProduct - struct IfcTypeProduct : IfcTypeObject, ObjectHelper { IfcTypeProduct() : Object("IfcTypeProduct") {} - Maybe< ListOf< Lazy< IfcRepresentationMap >, 1, 0 > > RepresentationMaps; - Maybe< IfcLabel::Out > Tag; - }; - - // C++ wrapper for IfcElementType - struct IfcElementType : IfcTypeProduct, ObjectHelper { IfcElementType() : Object("IfcElementType") {} - Maybe< IfcLabel::Out > ElementType; - }; - - // C++ wrapper for IfcDistributionElementType - struct IfcDistributionElementType : IfcElementType, ObjectHelper { IfcDistributionElementType() : Object("IfcDistributionElementType") {} - - }; - - // C++ wrapper for IfcDistributionControlElementType - struct IfcDistributionControlElementType : IfcDistributionElementType, ObjectHelper { IfcDistributionControlElementType() : Object("IfcDistributionControlElementType") {} - - }; - - // C++ wrapper for IfcActuatorType - struct IfcActuatorType : IfcDistributionControlElementType, ObjectHelper { IfcActuatorType() : Object("IfcActuatorType") {} - IfcActuatorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcDistributionFlowElementType - struct IfcDistributionFlowElementType : IfcDistributionElementType, ObjectHelper { IfcDistributionFlowElementType() : Object("IfcDistributionFlowElementType") {} - - }; - - // C++ wrapper for IfcFlowControllerType - struct IfcFlowControllerType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowControllerType() : Object("IfcFlowControllerType") {} - - }; - - // C++ wrapper for IfcAirTerminalBoxType - struct IfcAirTerminalBoxType : IfcFlowControllerType, ObjectHelper { IfcAirTerminalBoxType() : Object("IfcAirTerminalBoxType") {} - IfcAirTerminalBoxTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowTerminalType - struct IfcFlowTerminalType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowTerminalType() : Object("IfcFlowTerminalType") {} - - }; - - // C++ wrapper for IfcAirTerminalType - struct IfcAirTerminalType : IfcFlowTerminalType, ObjectHelper { IfcAirTerminalType() : Object("IfcAirTerminalType") {} - IfcAirTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcEnergyConversionDeviceType - struct IfcEnergyConversionDeviceType : IfcDistributionFlowElementType, ObjectHelper { IfcEnergyConversionDeviceType() : Object("IfcEnergyConversionDeviceType") {} - - }; - - // C++ wrapper for IfcAirToAirHeatRecoveryType - struct IfcAirToAirHeatRecoveryType : IfcEnergyConversionDeviceType, ObjectHelper { IfcAirToAirHeatRecoveryType() : Object("IfcAirToAirHeatRecoveryType") {} - IfcAirToAirHeatRecoveryTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcAlarmType - struct IfcAlarmType : IfcDistributionControlElementType, ObjectHelper { IfcAlarmType() : Object("IfcAlarmType") {} - IfcAlarmTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcDraughtingCallout - struct IfcDraughtingCallout : IfcGeometricRepresentationItem, ObjectHelper { IfcDraughtingCallout() : Object("IfcDraughtingCallout") {} - ListOf< IfcDraughtingCalloutElement, 1, 0 >::Out Contents; - }; - - // C++ wrapper for IfcDimensionCurveDirectedCallout - struct IfcDimensionCurveDirectedCallout : IfcDraughtingCallout, ObjectHelper { IfcDimensionCurveDirectedCallout() : Object("IfcDimensionCurveDirectedCallout") {} - - }; - - // C++ wrapper for IfcAngularDimension - struct IfcAngularDimension : IfcDimensionCurveDirectedCallout, ObjectHelper { IfcAngularDimension() : Object("IfcAngularDimension") {} - - }; - - // C++ wrapper for IfcProduct - struct IfcProduct : IfcObject, ObjectHelper { IfcProduct() : Object("IfcProduct") {} - Maybe< Lazy< IfcObjectPlacement > > ObjectPlacement; - Maybe< Lazy< IfcProductRepresentation > > Representation; - }; - - // C++ wrapper for IfcAnnotation - struct IfcAnnotation : IfcProduct, ObjectHelper { IfcAnnotation() : Object("IfcAnnotation") {} - - }; - - // C++ wrapper for IfcStyledItem - struct IfcStyledItem : IfcRepresentationItem, ObjectHelper { IfcStyledItem() : Object("IfcStyledItem") {} - Maybe< Lazy< IfcRepresentationItem > > Item; - ListOf< Lazy< IfcPresentationStyleAssignment >, 1, 0 > Styles; - Maybe< IfcLabel::Out > Name; - }; - - // C++ wrapper for IfcAnnotationOccurrence - struct IfcAnnotationOccurrence : IfcStyledItem, ObjectHelper { IfcAnnotationOccurrence() : Object("IfcAnnotationOccurrence") {} - - }; - - // C++ wrapper for IfcAnnotationCurveOccurrence - struct IfcAnnotationCurveOccurrence : IfcAnnotationOccurrence, ObjectHelper { IfcAnnotationCurveOccurrence() : Object("IfcAnnotationCurveOccurrence") {} - - }; - - // C++ wrapper for IfcAnnotationFillArea - struct IfcAnnotationFillArea : IfcGeometricRepresentationItem, ObjectHelper { IfcAnnotationFillArea() : Object("IfcAnnotationFillArea") {} - Lazy< IfcCurve > OuterBoundary; - Maybe< ListOf< Lazy< IfcCurve >, 1, 0 > > InnerBoundaries; - }; - - // C++ wrapper for IfcAnnotationFillAreaOccurrence - struct IfcAnnotationFillAreaOccurrence : IfcAnnotationOccurrence, ObjectHelper { IfcAnnotationFillAreaOccurrence() : Object("IfcAnnotationFillAreaOccurrence") {} - Maybe< Lazy< IfcPoint > > FillStyleTarget; - Maybe< IfcGlobalOrLocalEnum::Out > GlobalOrLocal; - }; - - // C++ wrapper for IfcAnnotationSurface - struct IfcAnnotationSurface : IfcGeometricRepresentationItem, ObjectHelper { IfcAnnotationSurface() : Object("IfcAnnotationSurface") {} - Lazy< IfcGeometricRepresentationItem > Item; - Maybe< Lazy< NotImplemented > > TextureCoordinates; - }; - - // C++ wrapper for IfcAnnotationSurfaceOccurrence - struct IfcAnnotationSurfaceOccurrence : IfcAnnotationOccurrence, ObjectHelper { IfcAnnotationSurfaceOccurrence() : Object("IfcAnnotationSurfaceOccurrence") {} - - }; - - // C++ wrapper for IfcAnnotationSymbolOccurrence - struct IfcAnnotationSymbolOccurrence : IfcAnnotationOccurrence, ObjectHelper { IfcAnnotationSymbolOccurrence() : Object("IfcAnnotationSymbolOccurrence") {} - - }; - - // C++ wrapper for IfcAnnotationTextOccurrence - struct IfcAnnotationTextOccurrence : IfcAnnotationOccurrence, ObjectHelper { IfcAnnotationTextOccurrence() : Object("IfcAnnotationTextOccurrence") {} - - }; - - // C++ wrapper for IfcProfileDef - struct IfcProfileDef : ObjectHelper { IfcProfileDef() : Object("IfcProfileDef") {} - IfcProfileTypeEnum::Out ProfileType; - Maybe< IfcLabel::Out > ProfileName; - }; - - // C++ wrapper for IfcArbitraryClosedProfileDef - struct IfcArbitraryClosedProfileDef : IfcProfileDef, ObjectHelper { IfcArbitraryClosedProfileDef() : Object("IfcArbitraryClosedProfileDef") {} - Lazy< IfcCurve > OuterCurve; - }; - - // C++ wrapper for IfcArbitraryOpenProfileDef - struct IfcArbitraryOpenProfileDef : IfcProfileDef, ObjectHelper { IfcArbitraryOpenProfileDef() : Object("IfcArbitraryOpenProfileDef") {} - Lazy< IfcBoundedCurve > Curve; - }; - - // C++ wrapper for IfcArbitraryProfileDefWithVoids - struct IfcArbitraryProfileDefWithVoids : IfcArbitraryClosedProfileDef, ObjectHelper { IfcArbitraryProfileDefWithVoids() : Object("IfcArbitraryProfileDefWithVoids") {} - ListOf< Lazy< IfcCurve >, 1, 0 > InnerCurves; - }; - - // C++ wrapper for IfcGroup - struct IfcGroup : IfcObject, ObjectHelper { IfcGroup() : Object("IfcGroup") {} - - }; - - // C++ wrapper for IfcAsset - struct IfcAsset : IfcGroup, ObjectHelper { IfcAsset() : Object("IfcAsset") {} - IfcIdentifier::Out AssetID; - Lazy< NotImplemented > OriginalValue; - Lazy< NotImplemented > CurrentValue; - Lazy< NotImplemented > TotalReplacementCost; - IfcActorSelect::Out Owner; - IfcActorSelect::Out User; - Lazy< NotImplemented > ResponsiblePerson; - Lazy< NotImplemented > IncorporationDate; - Lazy< NotImplemented > DepreciatedValue; - }; - - // C++ wrapper for IfcParameterizedProfileDef - struct IfcParameterizedProfileDef : IfcProfileDef, ObjectHelper { IfcParameterizedProfileDef() : Object("IfcParameterizedProfileDef") {} - Lazy< IfcAxis2Placement2D > Position; - }; - - // C++ wrapper for IfcIShapeProfileDef - struct IfcIShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcIShapeProfileDef() : Object("IfcIShapeProfileDef") {} - IfcPositiveLengthMeasure::Out OverallWidth; - IfcPositiveLengthMeasure::Out OverallDepth; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out FlangeThickness; - Maybe< IfcPositiveLengthMeasure::Out > FilletRadius; - }; - - // C++ wrapper for IfcAsymmetricIShapeProfileDef - struct IfcAsymmetricIShapeProfileDef : IfcIShapeProfileDef, ObjectHelper { IfcAsymmetricIShapeProfileDef() : Object("IfcAsymmetricIShapeProfileDef") {} - IfcPositiveLengthMeasure::Out TopFlangeWidth; - Maybe< IfcPositiveLengthMeasure::Out > TopFlangeThickness; - Maybe< IfcPositiveLengthMeasure::Out > TopFlangeFilletRadius; - Maybe< IfcPositiveLengthMeasure::Out > CentreOfGravityInY; - }; - - // C++ wrapper for IfcPlacement - struct IfcPlacement : IfcGeometricRepresentationItem, ObjectHelper { IfcPlacement() : Object("IfcPlacement") {} - Lazy< IfcCartesianPoint > Location; - }; - - // C++ wrapper for IfcAxis1Placement - struct IfcAxis1Placement : IfcPlacement, ObjectHelper { IfcAxis1Placement() : Object("IfcAxis1Placement") {} - Maybe< Lazy< IfcDirection > > Axis; - }; - - // C++ wrapper for IfcAxis2Placement2D - struct IfcAxis2Placement2D : IfcPlacement, ObjectHelper { IfcAxis2Placement2D() : Object("IfcAxis2Placement2D") {} - Maybe< Lazy< IfcDirection > > RefDirection; - }; - - // C++ wrapper for IfcAxis2Placement3D - struct IfcAxis2Placement3D : IfcPlacement, ObjectHelper { IfcAxis2Placement3D() : Object("IfcAxis2Placement3D") {} - Maybe< Lazy< IfcDirection > > Axis; - Maybe< Lazy< IfcDirection > > RefDirection; - }; - - // C++ wrapper for IfcBSplineCurve - struct IfcBSplineCurve : IfcBoundedCurve, ObjectHelper { IfcBSplineCurve() : Object("IfcBSplineCurve") {} - INTEGER::Out Degree; - ListOf< Lazy< IfcCartesianPoint >, 2, 0 > ControlPointsList; - IfcBSplineCurveForm::Out CurveForm; - LOGICAL::Out ClosedCurve; - LOGICAL::Out SelfIntersect; - }; - - // C++ wrapper for IfcElement - struct IfcElement : IfcProduct, ObjectHelper { IfcElement() : Object("IfcElement") {} - Maybe< IfcIdentifier::Out > Tag; - }; - - // C++ wrapper for IfcBuildingElement - struct IfcBuildingElement : IfcElement, ObjectHelper { IfcBuildingElement() : Object("IfcBuildingElement") {} - - }; - - // C++ wrapper for IfcBeam - struct IfcBeam : IfcBuildingElement, ObjectHelper { IfcBeam() : Object("IfcBeam") {} - - }; - - // C++ wrapper for IfcBuildingElementType - struct IfcBuildingElementType : IfcElementType, ObjectHelper { IfcBuildingElementType() : Object("IfcBuildingElementType") {} - - }; - - // C++ wrapper for IfcBeamType - struct IfcBeamType : IfcBuildingElementType, ObjectHelper { IfcBeamType() : Object("IfcBeamType") {} - IfcBeamTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcBezierCurve - struct IfcBezierCurve : IfcBSplineCurve, ObjectHelper { IfcBezierCurve() : Object("IfcBezierCurve") {} - - }; - - // C++ wrapper for IfcCsgPrimitive3D - struct IfcCsgPrimitive3D : IfcGeometricRepresentationItem, ObjectHelper { IfcCsgPrimitive3D() : Object("IfcCsgPrimitive3D") {} - Lazy< IfcAxis2Placement3D > Position; - }; - - // C++ wrapper for IfcBlock - struct IfcBlock : IfcCsgPrimitive3D, ObjectHelper { IfcBlock() : Object("IfcBlock") {} - IfcPositiveLengthMeasure::Out XLength; - IfcPositiveLengthMeasure::Out YLength; - IfcPositiveLengthMeasure::Out ZLength; - }; - - // C++ wrapper for IfcBoilerType - struct IfcBoilerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcBoilerType() : Object("IfcBoilerType") {} - IfcBoilerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcBooleanResult - struct IfcBooleanResult : IfcGeometricRepresentationItem, ObjectHelper { IfcBooleanResult() : Object("IfcBooleanResult") {} - IfcBooleanOperator::Out Operator; - IfcBooleanOperand::Out FirstOperand; - IfcBooleanOperand::Out SecondOperand; - }; - - // C++ wrapper for IfcBooleanClippingResult - struct IfcBooleanClippingResult : IfcBooleanResult, ObjectHelper { IfcBooleanClippingResult() : Object("IfcBooleanClippingResult") {} - - }; - - // C++ wrapper for IfcSurface - struct IfcSurface : IfcGeometricRepresentationItem, ObjectHelper { IfcSurface() : Object("IfcSurface") {} - - }; - - // C++ wrapper for IfcBoundedSurface - struct IfcBoundedSurface : IfcSurface, ObjectHelper { IfcBoundedSurface() : Object("IfcBoundedSurface") {} - - }; - - // C++ wrapper for IfcBoundingBox - struct IfcBoundingBox : IfcGeometricRepresentationItem, ObjectHelper { IfcBoundingBox() : Object("IfcBoundingBox") {} - Lazy< IfcCartesianPoint > Corner; - IfcPositiveLengthMeasure::Out XDim; - IfcPositiveLengthMeasure::Out YDim; - IfcPositiveLengthMeasure::Out ZDim; - }; - - // C++ wrapper for IfcHalfSpaceSolid - struct IfcHalfSpaceSolid : IfcGeometricRepresentationItem, ObjectHelper { IfcHalfSpaceSolid() : Object("IfcHalfSpaceSolid") {} - Lazy< IfcSurface > BaseSurface; - BOOLEAN::Out AgreementFlag; - }; - - // C++ wrapper for IfcBoxedHalfSpace - struct IfcBoxedHalfSpace : IfcHalfSpaceSolid, ObjectHelper { IfcBoxedHalfSpace() : Object("IfcBoxedHalfSpace") {} - Lazy< IfcBoundingBox > Enclosure; - }; - - // C++ wrapper for IfcSpatialStructureElement - struct IfcSpatialStructureElement : IfcProduct, ObjectHelper { IfcSpatialStructureElement() : Object("IfcSpatialStructureElement") {} - Maybe< IfcLabel::Out > LongName; - IfcElementCompositionEnum::Out CompositionType; - }; - - // C++ wrapper for IfcBuilding - struct IfcBuilding : IfcSpatialStructureElement, ObjectHelper { IfcBuilding() : Object("IfcBuilding") {} - Maybe< IfcLengthMeasure::Out > ElevationOfRefHeight; - Maybe< IfcLengthMeasure::Out > ElevationOfTerrain; - Maybe< Lazy< NotImplemented > > BuildingAddress; - }; - - // C++ wrapper for IfcBuildingElementComponent - struct IfcBuildingElementComponent : IfcBuildingElement, ObjectHelper { IfcBuildingElementComponent() : Object("IfcBuildingElementComponent") {} - - }; - - // C++ wrapper for IfcBuildingElementPart - struct IfcBuildingElementPart : IfcBuildingElementComponent, ObjectHelper { IfcBuildingElementPart() : Object("IfcBuildingElementPart") {} - - }; - - // C++ wrapper for IfcBuildingElementProxy - struct IfcBuildingElementProxy : IfcBuildingElement, ObjectHelper { IfcBuildingElementProxy() : Object("IfcBuildingElementProxy") {} - Maybe< IfcElementCompositionEnum::Out > CompositionType; - }; - - // C++ wrapper for IfcBuildingElementProxyType - struct IfcBuildingElementProxyType : IfcBuildingElementType, ObjectHelper { IfcBuildingElementProxyType() : Object("IfcBuildingElementProxyType") {} - IfcBuildingElementProxyTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcBuildingStorey - struct IfcBuildingStorey : IfcSpatialStructureElement, ObjectHelper { IfcBuildingStorey() : Object("IfcBuildingStorey") {} - Maybe< IfcLengthMeasure::Out > Elevation; - }; - - // C++ wrapper for IfcCShapeProfileDef - struct IfcCShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcCShapeProfileDef() : Object("IfcCShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - IfcPositiveLengthMeasure::Out Width; - IfcPositiveLengthMeasure::Out WallThickness; - IfcPositiveLengthMeasure::Out Girth; - Maybe< IfcPositiveLengthMeasure::Out > InternalFilletRadius; - Maybe< IfcPositiveLengthMeasure::Out > CentreOfGravityInX; - }; - - // C++ wrapper for IfcFlowFittingType - struct IfcFlowFittingType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowFittingType() : Object("IfcFlowFittingType") {} - - }; - - // C++ wrapper for IfcCableCarrierFittingType - struct IfcCableCarrierFittingType : IfcFlowFittingType, ObjectHelper { IfcCableCarrierFittingType() : Object("IfcCableCarrierFittingType") {} - IfcCableCarrierFittingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowSegmentType - struct IfcFlowSegmentType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowSegmentType() : Object("IfcFlowSegmentType") {} - - }; - - // C++ wrapper for IfcCableCarrierSegmentType - struct IfcCableCarrierSegmentType : IfcFlowSegmentType, ObjectHelper { IfcCableCarrierSegmentType() : Object("IfcCableCarrierSegmentType") {} - IfcCableCarrierSegmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCableSegmentType - struct IfcCableSegmentType : IfcFlowSegmentType, ObjectHelper { IfcCableSegmentType() : Object("IfcCableSegmentType") {} - IfcCableSegmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPoint - struct IfcPoint : IfcGeometricRepresentationItem, ObjectHelper { IfcPoint() : Object("IfcPoint") {} - - }; - - // C++ wrapper for IfcCartesianPoint - struct IfcCartesianPoint : IfcPoint, ObjectHelper { IfcCartesianPoint() : Object("IfcCartesianPoint") {} - ListOf< IfcLengthMeasure, 1, 3 >::Out Coordinates; - }; - - // C++ wrapper for IfcCartesianTransformationOperator - struct IfcCartesianTransformationOperator : IfcGeometricRepresentationItem, ObjectHelper { IfcCartesianTransformationOperator() : Object("IfcCartesianTransformationOperator") {} - Maybe< Lazy< IfcDirection > > Axis1; - Maybe< Lazy< IfcDirection > > Axis2; - Lazy< IfcCartesianPoint > LocalOrigin; - Maybe< REAL::Out > Scale; - }; - - // C++ wrapper for IfcCartesianTransformationOperator2D - struct IfcCartesianTransformationOperator2D : IfcCartesianTransformationOperator, ObjectHelper { IfcCartesianTransformationOperator2D() : Object("IfcCartesianTransformationOperator2D") {} - - }; - - // C++ wrapper for IfcCartesianTransformationOperator2DnonUniform - struct IfcCartesianTransformationOperator2DnonUniform : IfcCartesianTransformationOperator2D, ObjectHelper { IfcCartesianTransformationOperator2DnonUniform() : Object("IfcCartesianTransformationOperator2DnonUniform") {} - Maybe< REAL::Out > Scale2; - }; - - // C++ wrapper for IfcCartesianTransformationOperator3D - struct IfcCartesianTransformationOperator3D : IfcCartesianTransformationOperator, ObjectHelper { IfcCartesianTransformationOperator3D() : Object("IfcCartesianTransformationOperator3D") {} - Maybe< Lazy< IfcDirection > > Axis3; - }; - - // C++ wrapper for IfcCartesianTransformationOperator3DnonUniform - struct IfcCartesianTransformationOperator3DnonUniform : IfcCartesianTransformationOperator3D, ObjectHelper { IfcCartesianTransformationOperator3DnonUniform() : Object("IfcCartesianTransformationOperator3DnonUniform") {} - Maybe< REAL::Out > Scale2; - Maybe< REAL::Out > Scale3; - }; - - // C++ wrapper for IfcCenterLineProfileDef - struct IfcCenterLineProfileDef : IfcArbitraryOpenProfileDef, ObjectHelper { IfcCenterLineProfileDef() : Object("IfcCenterLineProfileDef") {} - IfcPositiveLengthMeasure::Out Thickness; - }; - - // C++ wrapper for IfcFeatureElement - struct IfcFeatureElement : IfcElement, ObjectHelper { IfcFeatureElement() : Object("IfcFeatureElement") {} - - }; - - // C++ wrapper for IfcFeatureElementSubtraction - struct IfcFeatureElementSubtraction : IfcFeatureElement, ObjectHelper { IfcFeatureElementSubtraction() : Object("IfcFeatureElementSubtraction") {} - - }; - - // C++ wrapper for IfcEdgeFeature - struct IfcEdgeFeature : IfcFeatureElementSubtraction, ObjectHelper { IfcEdgeFeature() : Object("IfcEdgeFeature") {} - Maybe< IfcPositiveLengthMeasure::Out > FeatureLength; - }; - - // C++ wrapper for IfcChamferEdgeFeature - struct IfcChamferEdgeFeature : IfcEdgeFeature, ObjectHelper { IfcChamferEdgeFeature() : Object("IfcChamferEdgeFeature") {} - Maybe< IfcPositiveLengthMeasure::Out > Width; - Maybe< IfcPositiveLengthMeasure::Out > Height; - }; - - // C++ wrapper for IfcChillerType - struct IfcChillerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcChillerType() : Object("IfcChillerType") {} - IfcChillerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcConic - struct IfcConic : IfcCurve, ObjectHelper { IfcConic() : Object("IfcConic") {} - IfcAxis2Placement::Out Position; - }; - - // C++ wrapper for IfcCircle - struct IfcCircle : IfcConic, ObjectHelper { IfcCircle() : Object("IfcCircle") {} - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcCircleProfileDef - struct IfcCircleProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcCircleProfileDef() : Object("IfcCircleProfileDef") {} - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcCircleHollowProfileDef - struct IfcCircleHollowProfileDef : IfcCircleProfileDef, ObjectHelper { IfcCircleHollowProfileDef() : Object("IfcCircleHollowProfileDef") {} - IfcPositiveLengthMeasure::Out WallThickness; - }; - - // C++ wrapper for IfcTopologicalRepresentationItem - struct IfcTopologicalRepresentationItem : IfcRepresentationItem, ObjectHelper { IfcTopologicalRepresentationItem() : Object("IfcTopologicalRepresentationItem") {} - - }; - - // C++ wrapper for IfcConnectedFaceSet - struct IfcConnectedFaceSet : IfcTopologicalRepresentationItem, ObjectHelper { IfcConnectedFaceSet() : Object("IfcConnectedFaceSet") {} - ListOf< Lazy< IfcFace >, 1, 0 > CfsFaces; - }; - - // C++ wrapper for IfcClosedShell - struct IfcClosedShell : IfcConnectedFaceSet, ObjectHelper { IfcClosedShell() : Object("IfcClosedShell") {} - - }; - - // C++ wrapper for IfcCoilType - struct IfcCoilType : IfcEnergyConversionDeviceType, ObjectHelper { IfcCoilType() : Object("IfcCoilType") {} - IfcCoilTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcColourSpecification - struct IfcColourSpecification : ObjectHelper { IfcColourSpecification() : Object("IfcColourSpecification") {} - Maybe< IfcLabel::Out > Name; - }; - - // C++ wrapper for IfcColourRgb - struct IfcColourRgb : IfcColourSpecification, ObjectHelper { IfcColourRgb() : Object("IfcColourRgb") {} - IfcNormalisedRatioMeasure::Out Red; - IfcNormalisedRatioMeasure::Out Green; - IfcNormalisedRatioMeasure::Out Blue; - }; - - // C++ wrapper for IfcColumn - struct IfcColumn : IfcBuildingElement, ObjectHelper { IfcColumn() : Object("IfcColumn") {} - - }; - - // C++ wrapper for IfcColumnType - struct IfcColumnType : IfcBuildingElementType, ObjectHelper { IfcColumnType() : Object("IfcColumnType") {} - IfcColumnTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcProperty - struct IfcProperty : ObjectHelper { IfcProperty() : Object("IfcProperty") {} - IfcIdentifier::Out Name; - Maybe< IfcText::Out > Description; - }; - - // C++ wrapper for IfcComplexProperty - struct IfcComplexProperty : IfcProperty, ObjectHelper { IfcComplexProperty() : Object("IfcComplexProperty") {} - IfcIdentifier::Out UsageName; - ListOf< Lazy< IfcProperty >, 1, 0 > HasProperties; - }; - - // C++ wrapper for IfcCompositeCurveSegment - struct IfcCompositeCurveSegment : IfcGeometricRepresentationItem, ObjectHelper { IfcCompositeCurveSegment() : Object("IfcCompositeCurveSegment") {} - IfcTransitionCode::Out Transition; - BOOLEAN::Out SameSense; - Lazy< IfcCurve > ParentCurve; - }; - - // C++ wrapper for IfcCompositeProfileDef - struct IfcCompositeProfileDef : IfcProfileDef, ObjectHelper { IfcCompositeProfileDef() : Object("IfcCompositeProfileDef") {} - ListOf< Lazy< IfcProfileDef >, 2, 0 > Profiles; - Maybe< IfcLabel::Out > Label; - }; - - // C++ wrapper for IfcFlowMovingDeviceType - struct IfcFlowMovingDeviceType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowMovingDeviceType() : Object("IfcFlowMovingDeviceType") {} - - }; - - // C++ wrapper for IfcCompressorType - struct IfcCompressorType : IfcFlowMovingDeviceType, ObjectHelper { IfcCompressorType() : Object("IfcCompressorType") {} - IfcCompressorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCondenserType - struct IfcCondenserType : IfcEnergyConversionDeviceType, ObjectHelper { IfcCondenserType() : Object("IfcCondenserType") {} - IfcCondenserTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCondition - struct IfcCondition : IfcGroup, ObjectHelper { IfcCondition() : Object("IfcCondition") {} - - }; - - // C++ wrapper for IfcConditionCriterion - struct IfcConditionCriterion : IfcControl, ObjectHelper { IfcConditionCriterion() : Object("IfcConditionCriterion") {} - IfcConditionCriterionSelect::Out Criterion; - IfcDateTimeSelect::Out CriterionDateTime; - }; - - // C++ wrapper for IfcResource - struct IfcResource : IfcObject, ObjectHelper { IfcResource() : Object("IfcResource") {} - - }; - - // C++ wrapper for IfcConstructionResource - struct IfcConstructionResource : IfcResource, ObjectHelper { IfcConstructionResource() : Object("IfcConstructionResource") {} - Maybe< IfcIdentifier::Out > ResourceIdentifier; - Maybe< IfcLabel::Out > ResourceGroup; - Maybe< IfcResourceConsumptionEnum::Out > ResourceConsumption; - Maybe< Lazy< IfcMeasureWithUnit > > BaseQuantity; - }; - - // C++ wrapper for IfcConstructionEquipmentResource - struct IfcConstructionEquipmentResource : IfcConstructionResource, ObjectHelper { IfcConstructionEquipmentResource() : Object("IfcConstructionEquipmentResource") {} - - }; - - // C++ wrapper for IfcConstructionMaterialResource - struct IfcConstructionMaterialResource : IfcConstructionResource, ObjectHelper { IfcConstructionMaterialResource() : Object("IfcConstructionMaterialResource") {} - Maybe< ListOf< IfcActorSelect, 1, 0 >::Out > Suppliers; - Maybe< IfcRatioMeasure::Out > UsageRatio; - }; - - // C++ wrapper for IfcConstructionProductResource - struct IfcConstructionProductResource : IfcConstructionResource, ObjectHelper { IfcConstructionProductResource() : Object("IfcConstructionProductResource") {} - - }; - - // C++ wrapper for IfcNamedUnit - struct IfcNamedUnit : ObjectHelper { IfcNamedUnit() : Object("IfcNamedUnit") {} - Lazy< NotImplemented > Dimensions; - IfcUnitEnum::Out UnitType; - }; - - // C++ wrapper for IfcContextDependentUnit - struct IfcContextDependentUnit : IfcNamedUnit, ObjectHelper { IfcContextDependentUnit() : Object("IfcContextDependentUnit") {} - IfcLabel::Out Name; - }; - - // C++ wrapper for IfcControllerType - struct IfcControllerType : IfcDistributionControlElementType, ObjectHelper { IfcControllerType() : Object("IfcControllerType") {} - IfcControllerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcConversionBasedUnit - struct IfcConversionBasedUnit : IfcNamedUnit, ObjectHelper { IfcConversionBasedUnit() : Object("IfcConversionBasedUnit") {} - IfcLabel::Out Name; - Lazy< IfcMeasureWithUnit > ConversionFactor; - }; - - // C++ wrapper for IfcCooledBeamType - struct IfcCooledBeamType : IfcEnergyConversionDeviceType, ObjectHelper { IfcCooledBeamType() : Object("IfcCooledBeamType") {} - IfcCooledBeamTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCoolingTowerType - struct IfcCoolingTowerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcCoolingTowerType() : Object("IfcCoolingTowerType") {} - IfcCoolingTowerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCostItem - struct IfcCostItem : IfcControl, ObjectHelper { IfcCostItem() : Object("IfcCostItem") {} - - }; - - // C++ wrapper for IfcCostSchedule - struct IfcCostSchedule : IfcControl, ObjectHelper { IfcCostSchedule() : Object("IfcCostSchedule") {} - Maybe< IfcActorSelect::Out > SubmittedBy; - Maybe< IfcActorSelect::Out > PreparedBy; - Maybe< IfcDateTimeSelect::Out > SubmittedOn; - Maybe< IfcLabel::Out > Status; - Maybe< ListOf< IfcActorSelect, 1, 0 >::Out > TargetUsers; - Maybe< IfcDateTimeSelect::Out > UpdateDate; - IfcIdentifier::Out ID; - IfcCostScheduleTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCovering - struct IfcCovering : IfcBuildingElement, ObjectHelper { IfcCovering() : Object("IfcCovering") {} - Maybe< IfcCoveringTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCoveringType - struct IfcCoveringType : IfcBuildingElementType, ObjectHelper { IfcCoveringType() : Object("IfcCoveringType") {} - IfcCoveringTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCraneRailAShapeProfileDef - struct IfcCraneRailAShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcCraneRailAShapeProfileDef() : Object("IfcCraneRailAShapeProfileDef") {} - IfcPositiveLengthMeasure::Out OverallHeight; - IfcPositiveLengthMeasure::Out BaseWidth2; - Maybe< IfcPositiveLengthMeasure::Out > Radius; - IfcPositiveLengthMeasure::Out HeadWidth; - IfcPositiveLengthMeasure::Out HeadDepth2; - IfcPositiveLengthMeasure::Out HeadDepth3; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out BaseWidth4; - IfcPositiveLengthMeasure::Out BaseDepth1; - IfcPositiveLengthMeasure::Out BaseDepth2; - IfcPositiveLengthMeasure::Out BaseDepth3; - Maybe< IfcPositiveLengthMeasure::Out > CentreOfGravityInY; - }; - - // C++ wrapper for IfcCraneRailFShapeProfileDef - struct IfcCraneRailFShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcCraneRailFShapeProfileDef() : Object("IfcCraneRailFShapeProfileDef") {} - IfcPositiveLengthMeasure::Out OverallHeight; - IfcPositiveLengthMeasure::Out HeadWidth; - Maybe< IfcPositiveLengthMeasure::Out > Radius; - IfcPositiveLengthMeasure::Out HeadDepth2; - IfcPositiveLengthMeasure::Out HeadDepth3; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out BaseDepth1; - IfcPositiveLengthMeasure::Out BaseDepth2; - Maybe< IfcPositiveLengthMeasure::Out > CentreOfGravityInY; - }; - - // C++ wrapper for IfcCrewResource - struct IfcCrewResource : IfcConstructionResource, ObjectHelper { IfcCrewResource() : Object("IfcCrewResource") {} - - }; - - // C++ wrapper for IfcSolidModel - struct IfcSolidModel : IfcGeometricRepresentationItem, ObjectHelper { IfcSolidModel() : Object("IfcSolidModel") {} - - }; - - // C++ wrapper for IfcCsgSolid - struct IfcCsgSolid : IfcSolidModel, ObjectHelper { IfcCsgSolid() : Object("IfcCsgSolid") {} - IfcCsgSelect::Out TreeRootExpression; - }; - - // C++ wrapper for IfcCurtainWall - struct IfcCurtainWall : IfcBuildingElement, ObjectHelper { IfcCurtainWall() : Object("IfcCurtainWall") {} - - }; - - // C++ wrapper for IfcCurtainWallType - struct IfcCurtainWallType : IfcBuildingElementType, ObjectHelper { IfcCurtainWallType() : Object("IfcCurtainWallType") {} - IfcCurtainWallTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCurveBoundedPlane - struct IfcCurveBoundedPlane : IfcBoundedSurface, ObjectHelper { IfcCurveBoundedPlane() : Object("IfcCurveBoundedPlane") {} - Lazy< IfcPlane > BasisSurface; - Lazy< IfcCurve > OuterBoundary; - ListOf< Lazy< IfcCurve >, 0, 0 > InnerBoundaries; - }; - - // C++ wrapper for IfcPresentationStyle - struct IfcPresentationStyle : ObjectHelper { IfcPresentationStyle() : Object("IfcPresentationStyle") {} - Maybe< IfcLabel::Out > Name; - }; - - // C++ wrapper for IfcDamperType - struct IfcDamperType : IfcFlowControllerType, ObjectHelper { IfcDamperType() : Object("IfcDamperType") {} - IfcDamperTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcDefinedSymbol - struct IfcDefinedSymbol : IfcGeometricRepresentationItem, ObjectHelper { IfcDefinedSymbol() : Object("IfcDefinedSymbol") {} - IfcDefinedSymbolSelect::Out Definition; - Lazy< IfcCartesianTransformationOperator2D > Target; - }; - - // C++ wrapper for IfcDerivedProfileDef - struct IfcDerivedProfileDef : IfcProfileDef, ObjectHelper { IfcDerivedProfileDef() : Object("IfcDerivedProfileDef") {} - Lazy< IfcProfileDef > ParentProfile; - Lazy< IfcCartesianTransformationOperator2D > Operator; - Maybe< IfcLabel::Out > Label; - }; - - // C++ wrapper for IfcDiameterDimension - struct IfcDiameterDimension : IfcDimensionCurveDirectedCallout, ObjectHelper { IfcDiameterDimension() : Object("IfcDiameterDimension") {} - - }; - - // C++ wrapper for IfcDimensionCurve - struct IfcDimensionCurve : IfcAnnotationCurveOccurrence, ObjectHelper { IfcDimensionCurve() : Object("IfcDimensionCurve") {} - - }; - - // C++ wrapper for IfcTerminatorSymbol - struct IfcTerminatorSymbol : IfcAnnotationSymbolOccurrence, ObjectHelper { IfcTerminatorSymbol() : Object("IfcTerminatorSymbol") {} - Lazy< IfcAnnotationCurveOccurrence > AnnotatedCurve; - }; - - // C++ wrapper for IfcDimensionCurveTerminator - struct IfcDimensionCurveTerminator : IfcTerminatorSymbol, ObjectHelper { IfcDimensionCurveTerminator() : Object("IfcDimensionCurveTerminator") {} - IfcDimensionExtentUsage::Out Role; - }; - - // C++ wrapper for IfcDirection - struct IfcDirection : IfcGeometricRepresentationItem, ObjectHelper { IfcDirection() : Object("IfcDirection") {} - ListOf< REAL, 2, 3 >::Out DirectionRatios; - }; - - // C++ wrapper for IfcElementComponent - struct IfcElementComponent : IfcElement, ObjectHelper { IfcElementComponent() : Object("IfcElementComponent") {} - - }; - - // C++ wrapper for IfcDiscreteAccessory - struct IfcDiscreteAccessory : IfcElementComponent, ObjectHelper { IfcDiscreteAccessory() : Object("IfcDiscreteAccessory") {} - - }; - - // C++ wrapper for IfcElementComponentType - struct IfcElementComponentType : IfcElementType, ObjectHelper { IfcElementComponentType() : Object("IfcElementComponentType") {} - - }; - - // C++ wrapper for IfcDiscreteAccessoryType - struct IfcDiscreteAccessoryType : IfcElementComponentType, ObjectHelper { IfcDiscreteAccessoryType() : Object("IfcDiscreteAccessoryType") {} - - }; - - // C++ wrapper for IfcDistributionElement - struct IfcDistributionElement : IfcElement, ObjectHelper { IfcDistributionElement() : Object("IfcDistributionElement") {} - - }; - - // C++ wrapper for IfcDistributionFlowElement - struct IfcDistributionFlowElement : IfcDistributionElement, ObjectHelper { IfcDistributionFlowElement() : Object("IfcDistributionFlowElement") {} - - }; - - // C++ wrapper for IfcDistributionChamberElement - struct IfcDistributionChamberElement : IfcDistributionFlowElement, ObjectHelper { IfcDistributionChamberElement() : Object("IfcDistributionChamberElement") {} - - }; - - // C++ wrapper for IfcDistributionChamberElementType - struct IfcDistributionChamberElementType : IfcDistributionFlowElementType, ObjectHelper { IfcDistributionChamberElementType() : Object("IfcDistributionChamberElementType") {} - IfcDistributionChamberElementTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcDistributionControlElement - struct IfcDistributionControlElement : IfcDistributionElement, ObjectHelper { IfcDistributionControlElement() : Object("IfcDistributionControlElement") {} - Maybe< IfcIdentifier::Out > ControlElementId; - }; - - // C++ wrapper for IfcPort - struct IfcPort : IfcProduct, ObjectHelper { IfcPort() : Object("IfcPort") {} - - }; - - // C++ wrapper for IfcDistributionPort - struct IfcDistributionPort : IfcPort, ObjectHelper { IfcDistributionPort() : Object("IfcDistributionPort") {} - Maybe< IfcFlowDirectionEnum::Out > FlowDirection; - }; - - // C++ wrapper for IfcDoor - struct IfcDoor : IfcBuildingElement, ObjectHelper { IfcDoor() : Object("IfcDoor") {} - Maybe< IfcPositiveLengthMeasure::Out > OverallHeight; - Maybe< IfcPositiveLengthMeasure::Out > OverallWidth; - }; - - // C++ wrapper for IfcPropertyDefinition - struct IfcPropertyDefinition : IfcRoot, ObjectHelper { IfcPropertyDefinition() : Object("IfcPropertyDefinition") {} - - }; - - // C++ wrapper for IfcPropertySetDefinition - struct IfcPropertySetDefinition : IfcPropertyDefinition, ObjectHelper { IfcPropertySetDefinition() : Object("IfcPropertySetDefinition") {} - - }; - - // C++ wrapper for IfcDoorStyle - struct IfcDoorStyle : IfcTypeProduct, ObjectHelper { IfcDoorStyle() : Object("IfcDoorStyle") {} - IfcDoorStyleOperationEnum::Out OperationType; - IfcDoorStyleConstructionEnum::Out ConstructionType; - BOOLEAN::Out ParameterTakesPrecedence; - BOOLEAN::Out Sizeable; - }; - - // C++ wrapper for IfcDuctFittingType - struct IfcDuctFittingType : IfcFlowFittingType, ObjectHelper { IfcDuctFittingType() : Object("IfcDuctFittingType") {} - IfcDuctFittingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcDuctSegmentType - struct IfcDuctSegmentType : IfcFlowSegmentType, ObjectHelper { IfcDuctSegmentType() : Object("IfcDuctSegmentType") {} - IfcDuctSegmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowTreatmentDeviceType - struct IfcFlowTreatmentDeviceType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowTreatmentDeviceType() : Object("IfcFlowTreatmentDeviceType") {} - - }; - - // C++ wrapper for IfcDuctSilencerType - struct IfcDuctSilencerType : IfcFlowTreatmentDeviceType, ObjectHelper { IfcDuctSilencerType() : Object("IfcDuctSilencerType") {} - IfcDuctSilencerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcEdge - struct IfcEdge : IfcTopologicalRepresentationItem, ObjectHelper { IfcEdge() : Object("IfcEdge") {} - Lazy< IfcVertex > EdgeStart; - Lazy< IfcVertex > EdgeEnd; - }; - - // C++ wrapper for IfcEdgeCurve - struct IfcEdgeCurve : IfcEdge, ObjectHelper { IfcEdgeCurve() : Object("IfcEdgeCurve") {} - Lazy< IfcCurve > EdgeGeometry; - BOOLEAN::Out SameSense; - }; - - // C++ wrapper for IfcLoop - struct IfcLoop : IfcTopologicalRepresentationItem, ObjectHelper { IfcLoop() : Object("IfcLoop") {} - - }; - - // C++ wrapper for IfcEdgeLoop - struct IfcEdgeLoop : IfcLoop, ObjectHelper { IfcEdgeLoop() : Object("IfcEdgeLoop") {} - ListOf< Lazy< IfcOrientedEdge >, 1, 0 > EdgeList; - }; - - // C++ wrapper for IfcElectricApplianceType - struct IfcElectricApplianceType : IfcFlowTerminalType, ObjectHelper { IfcElectricApplianceType() : Object("IfcElectricApplianceType") {} - IfcElectricApplianceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowController - struct IfcFlowController : IfcDistributionFlowElement, ObjectHelper { IfcFlowController() : Object("IfcFlowController") {} - - }; - - // C++ wrapper for IfcElectricDistributionPoint - struct IfcElectricDistributionPoint : IfcFlowController, ObjectHelper { IfcElectricDistributionPoint() : Object("IfcElectricDistributionPoint") {} - IfcElectricDistributionPointFunctionEnum::Out DistributionPointFunction; - Maybe< IfcLabel::Out > UserDefinedFunction; - }; - - // C++ wrapper for IfcFlowStorageDeviceType - struct IfcFlowStorageDeviceType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowStorageDeviceType() : Object("IfcFlowStorageDeviceType") {} - - }; - - // C++ wrapper for IfcElectricFlowStorageDeviceType - struct IfcElectricFlowStorageDeviceType : IfcFlowStorageDeviceType, ObjectHelper { IfcElectricFlowStorageDeviceType() : Object("IfcElectricFlowStorageDeviceType") {} - IfcElectricFlowStorageDeviceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElectricGeneratorType - struct IfcElectricGeneratorType : IfcEnergyConversionDeviceType, ObjectHelper { IfcElectricGeneratorType() : Object("IfcElectricGeneratorType") {} - IfcElectricGeneratorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElectricHeaterType - struct IfcElectricHeaterType : IfcFlowTerminalType, ObjectHelper { IfcElectricHeaterType() : Object("IfcElectricHeaterType") {} - IfcElectricHeaterTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElectricMotorType - struct IfcElectricMotorType : IfcEnergyConversionDeviceType, ObjectHelper { IfcElectricMotorType() : Object("IfcElectricMotorType") {} - IfcElectricMotorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElectricTimeControlType - struct IfcElectricTimeControlType : IfcFlowControllerType, ObjectHelper { IfcElectricTimeControlType() : Object("IfcElectricTimeControlType") {} - IfcElectricTimeControlTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSystem - struct IfcSystem : IfcGroup, ObjectHelper { IfcSystem() : Object("IfcSystem") {} - - }; - - // C++ wrapper for IfcElectricalCircuit - struct IfcElectricalCircuit : IfcSystem, ObjectHelper { IfcElectricalCircuit() : Object("IfcElectricalCircuit") {} - - }; - - // C++ wrapper for IfcElectricalElement - struct IfcElectricalElement : IfcElement, ObjectHelper { IfcElectricalElement() : Object("IfcElectricalElement") {} - - }; - - // C++ wrapper for IfcElementAssembly - struct IfcElementAssembly : IfcElement, ObjectHelper { IfcElementAssembly() : Object("IfcElementAssembly") {} - Maybe< IfcAssemblyPlaceEnum::Out > AssemblyPlace; - IfcElementAssemblyTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElementQuantity - struct IfcElementQuantity : IfcPropertySetDefinition, ObjectHelper { IfcElementQuantity() : Object("IfcElementQuantity") {} - Maybe< IfcLabel::Out > MethodOfMeasurement; - ListOf< Lazy< NotImplemented >, 1, 0 > Quantities; - }; - - // C++ wrapper for IfcElementarySurface - struct IfcElementarySurface : IfcSurface, ObjectHelper { IfcElementarySurface() : Object("IfcElementarySurface") {} - Lazy< IfcAxis2Placement3D > Position; - }; - - // C++ wrapper for IfcEllipse - struct IfcEllipse : IfcConic, ObjectHelper { IfcEllipse() : Object("IfcEllipse") {} - IfcPositiveLengthMeasure::Out SemiAxis1; - IfcPositiveLengthMeasure::Out SemiAxis2; - }; - - // C++ wrapper for IfcEllipseProfileDef - struct IfcEllipseProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcEllipseProfileDef() : Object("IfcEllipseProfileDef") {} - IfcPositiveLengthMeasure::Out SemiAxis1; - IfcPositiveLengthMeasure::Out SemiAxis2; - }; - - // C++ wrapper for IfcEnergyConversionDevice - struct IfcEnergyConversionDevice : IfcDistributionFlowElement, ObjectHelper { IfcEnergyConversionDevice() : Object("IfcEnergyConversionDevice") {} - - }; - - // C++ wrapper for IfcEquipmentElement - struct IfcEquipmentElement : IfcElement, ObjectHelper { IfcEquipmentElement() : Object("IfcEquipmentElement") {} - - }; - - // C++ wrapper for IfcEquipmentStandard - struct IfcEquipmentStandard : IfcControl, ObjectHelper { IfcEquipmentStandard() : Object("IfcEquipmentStandard") {} - - }; - - // C++ wrapper for IfcEvaporativeCoolerType - struct IfcEvaporativeCoolerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcEvaporativeCoolerType() : Object("IfcEvaporativeCoolerType") {} - IfcEvaporativeCoolerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcEvaporatorType - struct IfcEvaporatorType : IfcEnergyConversionDeviceType, ObjectHelper { IfcEvaporatorType() : Object("IfcEvaporatorType") {} - IfcEvaporatorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSweptAreaSolid - struct IfcSweptAreaSolid : IfcSolidModel, ObjectHelper { IfcSweptAreaSolid() : Object("IfcSweptAreaSolid") {} - Lazy< IfcProfileDef > SweptArea; - Lazy< IfcAxis2Placement3D > Position; - }; - - // C++ wrapper for IfcExtrudedAreaSolid - struct IfcExtrudedAreaSolid : IfcSweptAreaSolid, ObjectHelper { IfcExtrudedAreaSolid() : Object("IfcExtrudedAreaSolid") {} - Lazy< IfcDirection > ExtrudedDirection; - IfcPositiveLengthMeasure::Out Depth; - }; - - // C++ wrapper for IfcFace - struct IfcFace : IfcTopologicalRepresentationItem, ObjectHelper { IfcFace() : Object("IfcFace") {} - ListOf< Lazy< IfcFaceBound >, 1, 0 > Bounds; - }; - - // C++ wrapper for IfcFaceBasedSurfaceModel - struct IfcFaceBasedSurfaceModel : IfcGeometricRepresentationItem, ObjectHelper { IfcFaceBasedSurfaceModel() : Object("IfcFaceBasedSurfaceModel") {} - ListOf< Lazy< IfcConnectedFaceSet >, 1, 0 > FbsmFaces; - }; - - // C++ wrapper for IfcFaceBound - struct IfcFaceBound : IfcTopologicalRepresentationItem, ObjectHelper { IfcFaceBound() : Object("IfcFaceBound") {} - Lazy< IfcLoop > Bound; - BOOLEAN::Out Orientation; - }; - - // C++ wrapper for IfcFaceOuterBound - struct IfcFaceOuterBound : IfcFaceBound, ObjectHelper { IfcFaceOuterBound() : Object("IfcFaceOuterBound") {} - - }; - - // C++ wrapper for IfcFaceSurface - struct IfcFaceSurface : IfcFace, ObjectHelper { IfcFaceSurface() : Object("IfcFaceSurface") {} - Lazy< IfcSurface > FaceSurface; - BOOLEAN::Out SameSense; - }; - - // C++ wrapper for IfcManifoldSolidBrep - struct IfcManifoldSolidBrep : IfcSolidModel, ObjectHelper { IfcManifoldSolidBrep() : Object("IfcManifoldSolidBrep") {} - Lazy< IfcClosedShell > Outer; - }; - - // C++ wrapper for IfcFacetedBrep - struct IfcFacetedBrep : IfcManifoldSolidBrep, ObjectHelper { IfcFacetedBrep() : Object("IfcFacetedBrep") {} - - }; - - // C++ wrapper for IfcFacetedBrepWithVoids - struct IfcFacetedBrepWithVoids : IfcManifoldSolidBrep, ObjectHelper { IfcFacetedBrepWithVoids() : Object("IfcFacetedBrepWithVoids") {} - ListOf< Lazy< IfcClosedShell >, 1, 0 > Voids; - }; - - // C++ wrapper for IfcFanType - struct IfcFanType : IfcFlowMovingDeviceType, ObjectHelper { IfcFanType() : Object("IfcFanType") {} - IfcFanTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFastener - struct IfcFastener : IfcElementComponent, ObjectHelper { IfcFastener() : Object("IfcFastener") {} - - }; - - // C++ wrapper for IfcFastenerType - struct IfcFastenerType : IfcElementComponentType, ObjectHelper { IfcFastenerType() : Object("IfcFastenerType") {} - - }; - - // C++ wrapper for IfcFeatureElementAddition - struct IfcFeatureElementAddition : IfcFeatureElement, ObjectHelper { IfcFeatureElementAddition() : Object("IfcFeatureElementAddition") {} - - }; - - // C++ wrapper for IfcFillAreaStyleHatching - struct IfcFillAreaStyleHatching : IfcGeometricRepresentationItem, ObjectHelper { IfcFillAreaStyleHatching() : Object("IfcFillAreaStyleHatching") {} - Lazy< NotImplemented > HatchLineAppearance; - IfcHatchLineDistanceSelect::Out StartOfNextHatchLine; - Maybe< Lazy< IfcCartesianPoint > > PointOfReferenceHatchLine; - Maybe< Lazy< IfcCartesianPoint > > PatternStart; - IfcPlaneAngleMeasure::Out HatchLineAngle; - }; - - // C++ wrapper for IfcFillAreaStyleTileSymbolWithStyle - struct IfcFillAreaStyleTileSymbolWithStyle : IfcGeometricRepresentationItem, ObjectHelper { IfcFillAreaStyleTileSymbolWithStyle() : Object("IfcFillAreaStyleTileSymbolWithStyle") {} - Lazy< IfcAnnotationSymbolOccurrence > Symbol; - }; - - // C++ wrapper for IfcFillAreaStyleTiles - struct IfcFillAreaStyleTiles : IfcGeometricRepresentationItem, ObjectHelper { IfcFillAreaStyleTiles() : Object("IfcFillAreaStyleTiles") {} - Lazy< IfcOneDirectionRepeatFactor > TilingPattern; - ListOf< IfcFillAreaStyleTileShapeSelect, 1, 0 >::Out Tiles; - IfcPositiveRatioMeasure::Out TilingScale; - }; - - // C++ wrapper for IfcFilterType - struct IfcFilterType : IfcFlowTreatmentDeviceType, ObjectHelper { IfcFilterType() : Object("IfcFilterType") {} - IfcFilterTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFireSuppressionTerminalType - struct IfcFireSuppressionTerminalType : IfcFlowTerminalType, ObjectHelper { IfcFireSuppressionTerminalType() : Object("IfcFireSuppressionTerminalType") {} - IfcFireSuppressionTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowFitting - struct IfcFlowFitting : IfcDistributionFlowElement, ObjectHelper { IfcFlowFitting() : Object("IfcFlowFitting") {} - - }; - - // C++ wrapper for IfcFlowInstrumentType - struct IfcFlowInstrumentType : IfcDistributionControlElementType, ObjectHelper { IfcFlowInstrumentType() : Object("IfcFlowInstrumentType") {} - IfcFlowInstrumentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowMeterType - struct IfcFlowMeterType : IfcFlowControllerType, ObjectHelper { IfcFlowMeterType() : Object("IfcFlowMeterType") {} - IfcFlowMeterTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowMovingDevice - struct IfcFlowMovingDevice : IfcDistributionFlowElement, ObjectHelper { IfcFlowMovingDevice() : Object("IfcFlowMovingDevice") {} - - }; - - // C++ wrapper for IfcFlowSegment - struct IfcFlowSegment : IfcDistributionFlowElement, ObjectHelper { IfcFlowSegment() : Object("IfcFlowSegment") {} - - }; - - // C++ wrapper for IfcFlowStorageDevice - struct IfcFlowStorageDevice : IfcDistributionFlowElement, ObjectHelper { IfcFlowStorageDevice() : Object("IfcFlowStorageDevice") {} - - }; - - // C++ wrapper for IfcFlowTerminal - struct IfcFlowTerminal : IfcDistributionFlowElement, ObjectHelper { IfcFlowTerminal() : Object("IfcFlowTerminal") {} - - }; - - // C++ wrapper for IfcFlowTreatmentDevice - struct IfcFlowTreatmentDevice : IfcDistributionFlowElement, ObjectHelper { IfcFlowTreatmentDevice() : Object("IfcFlowTreatmentDevice") {} - - }; - - // C++ wrapper for IfcFooting - struct IfcFooting : IfcBuildingElement, ObjectHelper { IfcFooting() : Object("IfcFooting") {} - IfcFootingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFurnishingElement - struct IfcFurnishingElement : IfcElement, ObjectHelper { IfcFurnishingElement() : Object("IfcFurnishingElement") {} - - }; - - // C++ wrapper for IfcFurnishingElementType - struct IfcFurnishingElementType : IfcElementType, ObjectHelper { IfcFurnishingElementType() : Object("IfcFurnishingElementType") {} - - }; - - // C++ wrapper for IfcFurnitureStandard - struct IfcFurnitureStandard : IfcControl, ObjectHelper { IfcFurnitureStandard() : Object("IfcFurnitureStandard") {} - - }; - - // C++ wrapper for IfcFurnitureType - struct IfcFurnitureType : IfcFurnishingElementType, ObjectHelper { IfcFurnitureType() : Object("IfcFurnitureType") {} - IfcAssemblyPlaceEnum::Out AssemblyPlace; - }; - - // C++ wrapper for IfcGasTerminalType - struct IfcGasTerminalType : IfcFlowTerminalType, ObjectHelper { IfcGasTerminalType() : Object("IfcGasTerminalType") {} - IfcGasTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcGeometricSet - struct IfcGeometricSet : IfcGeometricRepresentationItem, ObjectHelper { IfcGeometricSet() : Object("IfcGeometricSet") {} - ListOf< IfcGeometricSetSelect, 1, 0 >::Out Elements; - }; - - // C++ wrapper for IfcGeometricCurveSet - struct IfcGeometricCurveSet : IfcGeometricSet, ObjectHelper { IfcGeometricCurveSet() : Object("IfcGeometricCurveSet") {} - - }; - - // C++ wrapper for IfcRepresentationContext - struct IfcRepresentationContext : ObjectHelper { IfcRepresentationContext() : Object("IfcRepresentationContext") {} - Maybe< IfcLabel::Out > ContextIdentifier; - Maybe< IfcLabel::Out > ContextType; - }; - - // C++ wrapper for IfcGeometricRepresentationContext - struct IfcGeometricRepresentationContext : IfcRepresentationContext, ObjectHelper { IfcGeometricRepresentationContext() : Object("IfcGeometricRepresentationContext") {} - IfcDimensionCount::Out CoordinateSpaceDimension; - Maybe< REAL::Out > Precision; - IfcAxis2Placement::Out WorldCoordinateSystem; - Maybe< Lazy< IfcDirection > > TrueNorth; - }; - - // C++ wrapper for IfcGeometricRepresentationSubContext - struct IfcGeometricRepresentationSubContext : IfcGeometricRepresentationContext, ObjectHelper { IfcGeometricRepresentationSubContext() : Object("IfcGeometricRepresentationSubContext") {} - Lazy< IfcGeometricRepresentationContext > ParentContext; - Maybe< IfcPositiveRatioMeasure::Out > TargetScale; - IfcGeometricProjectionEnum::Out TargetView; - Maybe< IfcLabel::Out > UserDefinedTargetView; - }; - - // C++ wrapper for IfcGrid - struct IfcGrid : IfcProduct, ObjectHelper { IfcGrid() : Object("IfcGrid") {} - ListOf< Lazy< NotImplemented >, 1, 0 > UAxes; - ListOf< Lazy< NotImplemented >, 1, 0 > VAxes; - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > WAxes; - }; - - // C++ wrapper for IfcObjectPlacement - struct IfcObjectPlacement : ObjectHelper { IfcObjectPlacement() : Object("IfcObjectPlacement") {} - - }; - - // C++ wrapper for IfcGridPlacement - struct IfcGridPlacement : IfcObjectPlacement, ObjectHelper { IfcGridPlacement() : Object("IfcGridPlacement") {} - Lazy< NotImplemented > PlacementLocation; - Maybe< Lazy< NotImplemented > > PlacementRefDirection; - }; - - // C++ wrapper for IfcHeatExchangerType - struct IfcHeatExchangerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcHeatExchangerType() : Object("IfcHeatExchangerType") {} - IfcHeatExchangerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcHumidifierType - struct IfcHumidifierType : IfcEnergyConversionDeviceType, ObjectHelper { IfcHumidifierType() : Object("IfcHumidifierType") {} - IfcHumidifierTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcInventory - struct IfcInventory : IfcGroup, ObjectHelper { IfcInventory() : Object("IfcInventory") {} - IfcInventoryTypeEnum::Out InventoryType; - IfcActorSelect::Out Jurisdiction; - ListOf< Lazy< NotImplemented >, 1, 0 > ResponsiblePersons; - Lazy< NotImplemented > LastUpdateDate; - Maybe< Lazy< NotImplemented > > CurrentValue; - Maybe< Lazy< NotImplemented > > OriginalValue; - }; - - // C++ wrapper for IfcJunctionBoxType - struct IfcJunctionBoxType : IfcFlowFittingType, ObjectHelper { IfcJunctionBoxType() : Object("IfcJunctionBoxType") {} - IfcJunctionBoxTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcLShapeProfileDef - struct IfcLShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcLShapeProfileDef() : Object("IfcLShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - Maybe< IfcPositiveLengthMeasure::Out > Width; - IfcPositiveLengthMeasure::Out Thickness; - Maybe< IfcPositiveLengthMeasure::Out > FilletRadius; - Maybe< IfcPositiveLengthMeasure::Out > EdgeRadius; - Maybe< IfcPlaneAngleMeasure::Out > LegSlope; - Maybe< IfcPositiveLengthMeasure::Out > CentreOfGravityInX; - Maybe< IfcPositiveLengthMeasure::Out > CentreOfGravityInY; - }; - - // C++ wrapper for IfcLaborResource - struct IfcLaborResource : IfcConstructionResource, ObjectHelper { IfcLaborResource() : Object("IfcLaborResource") {} - Maybe< IfcText::Out > SkillSet; - }; - - // C++ wrapper for IfcLampType - struct IfcLampType : IfcFlowTerminalType, ObjectHelper { IfcLampType() : Object("IfcLampType") {} - IfcLampTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcLightFixtureType - struct IfcLightFixtureType : IfcFlowTerminalType, ObjectHelper { IfcLightFixtureType() : Object("IfcLightFixtureType") {} - IfcLightFixtureTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcLightSource - struct IfcLightSource : IfcGeometricRepresentationItem, ObjectHelper { IfcLightSource() : Object("IfcLightSource") {} - Maybe< IfcLabel::Out > Name; - Lazy< IfcColourRgb > LightColour; - Maybe< IfcNormalisedRatioMeasure::Out > AmbientIntensity; - Maybe< IfcNormalisedRatioMeasure::Out > Intensity; - }; - - // C++ wrapper for IfcLightSourceAmbient - struct IfcLightSourceAmbient : IfcLightSource, ObjectHelper { IfcLightSourceAmbient() : Object("IfcLightSourceAmbient") {} - - }; - - // C++ wrapper for IfcLightSourceDirectional - struct IfcLightSourceDirectional : IfcLightSource, ObjectHelper { IfcLightSourceDirectional() : Object("IfcLightSourceDirectional") {} - Lazy< IfcDirection > Orientation; - }; - - // C++ wrapper for IfcLightSourceGoniometric - struct IfcLightSourceGoniometric : IfcLightSource, ObjectHelper { IfcLightSourceGoniometric() : Object("IfcLightSourceGoniometric") {} - Lazy< IfcAxis2Placement3D > Position; - Maybe< Lazy< IfcColourRgb > > ColourAppearance; - IfcThermodynamicTemperatureMeasure::Out ColourTemperature; - IfcLuminousFluxMeasure::Out LuminousFlux; - IfcLightEmissionSourceEnum::Out LightEmissionSource; - IfcLightDistributionDataSourceSelect::Out LightDistributionDataSource; - }; - - // C++ wrapper for IfcLightSourcePositional - struct IfcLightSourcePositional : IfcLightSource, ObjectHelper { IfcLightSourcePositional() : Object("IfcLightSourcePositional") {} - Lazy< IfcCartesianPoint > Position; - IfcPositiveLengthMeasure::Out Radius; - IfcReal::Out ConstantAttenuation; - IfcReal::Out DistanceAttenuation; - IfcReal::Out QuadricAttenuation; - }; - - // C++ wrapper for IfcLightSourceSpot - struct IfcLightSourceSpot : IfcLightSourcePositional, ObjectHelper { IfcLightSourceSpot() : Object("IfcLightSourceSpot") {} - Lazy< IfcDirection > Orientation; - Maybe< IfcReal::Out > ConcentrationExponent; - IfcPositivePlaneAngleMeasure::Out SpreadAngle; - IfcPositivePlaneAngleMeasure::Out BeamWidthAngle; - }; - - // C++ wrapper for IfcLine - struct IfcLine : IfcCurve, ObjectHelper { IfcLine() : Object("IfcLine") {} - Lazy< IfcCartesianPoint > Pnt; - Lazy< IfcVector > Dir; - }; - - // C++ wrapper for IfcLinearDimension - struct IfcLinearDimension : IfcDimensionCurveDirectedCallout, ObjectHelper { IfcLinearDimension() : Object("IfcLinearDimension") {} - - }; - - // C++ wrapper for IfcLocalPlacement - struct IfcLocalPlacement : IfcObjectPlacement, ObjectHelper { IfcLocalPlacement() : Object("IfcLocalPlacement") {} - Maybe< Lazy< IfcObjectPlacement > > PlacementRelTo; - IfcAxis2Placement::Out RelativePlacement; - }; - - // C++ wrapper for IfcMappedItem - struct IfcMappedItem : IfcRepresentationItem, ObjectHelper { IfcMappedItem() : Object("IfcMappedItem") {} - Lazy< IfcRepresentationMap > MappingSource; - Lazy< IfcCartesianTransformationOperator > MappingTarget; - }; - - // C++ wrapper for IfcProductRepresentation - struct IfcProductRepresentation : ObjectHelper { IfcProductRepresentation() : Object("IfcProductRepresentation") {} - Maybe< IfcLabel::Out > Name; - Maybe< IfcText::Out > Description; - ListOf< Lazy< IfcRepresentation >, 1, 0 > Representations; - }; - - // C++ wrapper for IfcMaterialDefinitionRepresentation - struct IfcMaterialDefinitionRepresentation : IfcProductRepresentation, ObjectHelper { IfcMaterialDefinitionRepresentation() : Object("IfcMaterialDefinitionRepresentation") {} - Lazy< NotImplemented > RepresentedMaterial; - }; - - // C++ wrapper for IfcMeasureWithUnit - struct IfcMeasureWithUnit : ObjectHelper { IfcMeasureWithUnit() : Object("IfcMeasureWithUnit") {} - IfcValue::Out ValueComponent; - IfcUnit::Out UnitComponent; - }; - - // C++ wrapper for IfcMechanicalFastener - struct IfcMechanicalFastener : IfcFastener, ObjectHelper { IfcMechanicalFastener() : Object("IfcMechanicalFastener") {} - Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter; - Maybe< IfcPositiveLengthMeasure::Out > NominalLength; - }; - - // C++ wrapper for IfcMechanicalFastenerType - struct IfcMechanicalFastenerType : IfcFastenerType, ObjectHelper { IfcMechanicalFastenerType() : Object("IfcMechanicalFastenerType") {} - - }; - - // C++ wrapper for IfcMember - struct IfcMember : IfcBuildingElement, ObjectHelper { IfcMember() : Object("IfcMember") {} - - }; - - // C++ wrapper for IfcMemberType - struct IfcMemberType : IfcBuildingElementType, ObjectHelper { IfcMemberType() : Object("IfcMemberType") {} - IfcMemberTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcMotorConnectionType - struct IfcMotorConnectionType : IfcEnergyConversionDeviceType, ObjectHelper { IfcMotorConnectionType() : Object("IfcMotorConnectionType") {} - IfcMotorConnectionTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcProcess - struct IfcProcess : IfcObject, ObjectHelper { IfcProcess() : Object("IfcProcess") {} - - }; - - // C++ wrapper for IfcTask - struct IfcTask : IfcProcess, ObjectHelper { IfcTask() : Object("IfcTask") {} - IfcIdentifier::Out TaskId; - Maybe< IfcLabel::Out > Status; - Maybe< IfcLabel::Out > WorkMethod; - BOOLEAN::Out IsMilestone; - Maybe< INTEGER::Out > Priority; - }; - - // C++ wrapper for IfcMove - struct IfcMove : IfcTask, ObjectHelper { IfcMove() : Object("IfcMove") {} - Lazy< IfcSpatialStructureElement > MoveFrom; - Lazy< IfcSpatialStructureElement > MoveTo; - Maybe< ListOf< IfcText, 1, 0 >::Out > PunchList; - }; - - // C++ wrapper for IfcOccupant - struct IfcOccupant : IfcActor, ObjectHelper { IfcOccupant() : Object("IfcOccupant") {} - IfcOccupantTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcOffsetCurve2D - struct IfcOffsetCurve2D : IfcCurve, ObjectHelper { IfcOffsetCurve2D() : Object("IfcOffsetCurve2D") {} - Lazy< IfcCurve > BasisCurve; - IfcLengthMeasure::Out Distance; - LOGICAL::Out SelfIntersect; - }; - - // C++ wrapper for IfcOffsetCurve3D - struct IfcOffsetCurve3D : IfcCurve, ObjectHelper { IfcOffsetCurve3D() : Object("IfcOffsetCurve3D") {} - Lazy< IfcCurve > BasisCurve; - IfcLengthMeasure::Out Distance; - LOGICAL::Out SelfIntersect; - Lazy< IfcDirection > RefDirection; - }; - - // C++ wrapper for IfcOneDirectionRepeatFactor - struct IfcOneDirectionRepeatFactor : IfcGeometricRepresentationItem, ObjectHelper { IfcOneDirectionRepeatFactor() : Object("IfcOneDirectionRepeatFactor") {} - Lazy< IfcVector > RepeatFactor; - }; - - // C++ wrapper for IfcOpenShell - struct IfcOpenShell : IfcConnectedFaceSet, ObjectHelper { IfcOpenShell() : Object("IfcOpenShell") {} - - }; - - // C++ wrapper for IfcOpeningElement - struct IfcOpeningElement : IfcFeatureElementSubtraction, ObjectHelper { IfcOpeningElement() : Object("IfcOpeningElement") {} - - }; - - // C++ wrapper for IfcOrderAction - struct IfcOrderAction : IfcTask, ObjectHelper { IfcOrderAction() : Object("IfcOrderAction") {} - IfcIdentifier::Out ActionID; - }; - - // C++ wrapper for IfcOrientedEdge - struct IfcOrientedEdge : IfcEdge, ObjectHelper { IfcOrientedEdge() : Object("IfcOrientedEdge") {} - Lazy< IfcEdge > EdgeElement; - BOOLEAN::Out Orientation; - }; - - // C++ wrapper for IfcOutletType - struct IfcOutletType : IfcFlowTerminalType, ObjectHelper { IfcOutletType() : Object("IfcOutletType") {} - IfcOutletTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPath - struct IfcPath : IfcTopologicalRepresentationItem, ObjectHelper { IfcPath() : Object("IfcPath") {} - ListOf< Lazy< IfcOrientedEdge >, 1, 0 > EdgeList; - }; - - // C++ wrapper for IfcPerformanceHistory - struct IfcPerformanceHistory : IfcControl, ObjectHelper { IfcPerformanceHistory() : Object("IfcPerformanceHistory") {} - IfcLabel::Out LifeCyclePhase; - }; - - // C++ wrapper for IfcPermit - struct IfcPermit : IfcControl, ObjectHelper { IfcPermit() : Object("IfcPermit") {} - IfcIdentifier::Out PermitID; - }; - - // C++ wrapper for IfcPile - struct IfcPile : IfcBuildingElement, ObjectHelper { IfcPile() : Object("IfcPile") {} - IfcPileTypeEnum::Out PredefinedType; - Maybe< IfcPileConstructionEnum::Out > ConstructionType; - }; - - // C++ wrapper for IfcPipeFittingType - struct IfcPipeFittingType : IfcFlowFittingType, ObjectHelper { IfcPipeFittingType() : Object("IfcPipeFittingType") {} - IfcPipeFittingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPipeSegmentType - struct IfcPipeSegmentType : IfcFlowSegmentType, ObjectHelper { IfcPipeSegmentType() : Object("IfcPipeSegmentType") {} - IfcPipeSegmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPlanarExtent - struct IfcPlanarExtent : IfcGeometricRepresentationItem, ObjectHelper { IfcPlanarExtent() : Object("IfcPlanarExtent") {} - IfcLengthMeasure::Out SizeInX; - IfcLengthMeasure::Out SizeInY; - }; - - // C++ wrapper for IfcPlanarBox - struct IfcPlanarBox : IfcPlanarExtent, ObjectHelper { IfcPlanarBox() : Object("IfcPlanarBox") {} - IfcAxis2Placement::Out Placement; - }; - - // C++ wrapper for IfcPlane - struct IfcPlane : IfcElementarySurface, ObjectHelper { IfcPlane() : Object("IfcPlane") {} - - }; - - // C++ wrapper for IfcPlate - struct IfcPlate : IfcBuildingElement, ObjectHelper { IfcPlate() : Object("IfcPlate") {} - - }; - - // C++ wrapper for IfcPlateType - struct IfcPlateType : IfcBuildingElementType, ObjectHelper { IfcPlateType() : Object("IfcPlateType") {} - IfcPlateTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPointOnCurve - struct IfcPointOnCurve : IfcPoint, ObjectHelper { IfcPointOnCurve() : Object("IfcPointOnCurve") {} - Lazy< IfcCurve > BasisCurve; - IfcParameterValue::Out PointParameter; - }; - - // C++ wrapper for IfcPointOnSurface - struct IfcPointOnSurface : IfcPoint, ObjectHelper { IfcPointOnSurface() : Object("IfcPointOnSurface") {} - Lazy< IfcSurface > BasisSurface; - IfcParameterValue::Out PointParameterU; - IfcParameterValue::Out PointParameterV; - }; - - // C++ wrapper for IfcPolyLoop - struct IfcPolyLoop : IfcLoop, ObjectHelper { IfcPolyLoop() : Object("IfcPolyLoop") {} - ListOf< Lazy< IfcCartesianPoint >, 3, 0 > Polygon; - }; - - // C++ wrapper for IfcPolygonalBoundedHalfSpace - struct IfcPolygonalBoundedHalfSpace : IfcHalfSpaceSolid, ObjectHelper { IfcPolygonalBoundedHalfSpace() : Object("IfcPolygonalBoundedHalfSpace") {} - Lazy< IfcAxis2Placement3D > Position; - Lazy< IfcBoundedCurve > PolygonalBoundary; - }; - - // C++ wrapper for IfcPolyline - struct IfcPolyline : IfcBoundedCurve, ObjectHelper { IfcPolyline() : Object("IfcPolyline") {} - ListOf< Lazy< IfcCartesianPoint >, 2, 0 > Points; - }; - - // C++ wrapper for IfcPresentationStyleAssignment - struct IfcPresentationStyleAssignment : ObjectHelper { IfcPresentationStyleAssignment() : Object("IfcPresentationStyleAssignment") {} - ListOf< IfcPresentationStyleSelect, 1, 0 >::Out Styles; - }; - - // C++ wrapper for IfcProcedure - struct IfcProcedure : IfcProcess, ObjectHelper { IfcProcedure() : Object("IfcProcedure") {} - IfcIdentifier::Out ProcedureID; - IfcProcedureTypeEnum::Out ProcedureType; - Maybe< IfcLabel::Out > UserDefinedProcedureType; - }; - - // C++ wrapper for IfcProductDefinitionShape - struct IfcProductDefinitionShape : IfcProductRepresentation, ObjectHelper { IfcProductDefinitionShape() : Object("IfcProductDefinitionShape") {} - - }; - - // C++ wrapper for IfcProject - struct IfcProject : IfcObject, ObjectHelper { IfcProject() : Object("IfcProject") {} - Maybe< IfcLabel::Out > LongName; - Maybe< IfcLabel::Out > Phase; - ListOf< Lazy< IfcRepresentationContext >, 1, 0 > RepresentationContexts; - Lazy< IfcUnitAssignment > UnitsInContext; - }; - - // C++ wrapper for IfcProjectOrder - struct IfcProjectOrder : IfcControl, ObjectHelper { IfcProjectOrder() : Object("IfcProjectOrder") {} - IfcIdentifier::Out ID; - IfcProjectOrderTypeEnum::Out PredefinedType; - Maybe< IfcLabel::Out > Status; - }; - - // C++ wrapper for IfcProjectOrderRecord - struct IfcProjectOrderRecord : IfcControl, ObjectHelper { IfcProjectOrderRecord() : Object("IfcProjectOrderRecord") {} - ListOf< Lazy< NotImplemented >, 1, 0 > Records; - IfcProjectOrderRecordTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcProjectionCurve - struct IfcProjectionCurve : IfcAnnotationCurveOccurrence, ObjectHelper { IfcProjectionCurve() : Object("IfcProjectionCurve") {} - - }; - - // C++ wrapper for IfcProjectionElement - struct IfcProjectionElement : IfcFeatureElementAddition, ObjectHelper { IfcProjectionElement() : Object("IfcProjectionElement") {} - - }; - - // C++ wrapper for IfcSimpleProperty - struct IfcSimpleProperty : IfcProperty, ObjectHelper { IfcSimpleProperty() : Object("IfcSimpleProperty") {} - - }; - - // C++ wrapper for IfcPropertyBoundedValue - struct IfcPropertyBoundedValue : IfcSimpleProperty, ObjectHelper { IfcPropertyBoundedValue() : Object("IfcPropertyBoundedValue") {} - Maybe< IfcValue::Out > UpperBoundValue; - Maybe< IfcValue::Out > LowerBoundValue; - Maybe< IfcUnit::Out > Unit; - }; - - // C++ wrapper for IfcPropertyEnumeratedValue - struct IfcPropertyEnumeratedValue : IfcSimpleProperty, ObjectHelper { IfcPropertyEnumeratedValue() : Object("IfcPropertyEnumeratedValue") {} - ListOf< IfcValue, 1, 0 >::Out EnumerationValues; - Maybe< Lazy< NotImplemented > > EnumerationReference; - }; - - // C++ wrapper for IfcPropertyListValue - struct IfcPropertyListValue : IfcSimpleProperty, ObjectHelper { IfcPropertyListValue() : Object("IfcPropertyListValue") {} - ListOf< IfcValue, 1, 0 >::Out ListValues; - Maybe< IfcUnit::Out > Unit; - }; - - // C++ wrapper for IfcPropertyReferenceValue - struct IfcPropertyReferenceValue : IfcSimpleProperty, ObjectHelper { IfcPropertyReferenceValue() : Object("IfcPropertyReferenceValue") {} - Maybe< IfcLabel::Out > UsageName; - IfcObjectReferenceSelect::Out PropertyReference; - }; - - // C++ wrapper for IfcPropertySet - struct IfcPropertySet : IfcPropertySetDefinition, ObjectHelper { IfcPropertySet() : Object("IfcPropertySet") {} - ListOf< Lazy< IfcProperty >, 1, 0 > HasProperties; - }; - - // C++ wrapper for IfcPropertySingleValue - struct IfcPropertySingleValue : IfcSimpleProperty, ObjectHelper { IfcPropertySingleValue() : Object("IfcPropertySingleValue") {} - Maybe< IfcValue::Out > NominalValue; - Maybe< IfcUnit::Out > Unit; - }; - - // C++ wrapper for IfcPropertyTableValue - struct IfcPropertyTableValue : IfcSimpleProperty, ObjectHelper { IfcPropertyTableValue() : Object("IfcPropertyTableValue") {} - ListOf< IfcValue, 1, 0 >::Out DefiningValues; - ListOf< IfcValue, 1, 0 >::Out DefinedValues; - Maybe< IfcText::Out > Expression; - Maybe< IfcUnit::Out > DefiningUnit; - Maybe< IfcUnit::Out > DefinedUnit; - }; - - // C++ wrapper for IfcProtectiveDeviceType - struct IfcProtectiveDeviceType : IfcFlowControllerType, ObjectHelper { IfcProtectiveDeviceType() : Object("IfcProtectiveDeviceType") {} - IfcProtectiveDeviceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcProxy - struct IfcProxy : IfcProduct, ObjectHelper { IfcProxy() : Object("IfcProxy") {} - IfcObjectTypeEnum::Out ProxyType; - Maybe< IfcLabel::Out > Tag; - }; - - // C++ wrapper for IfcPumpType - struct IfcPumpType : IfcFlowMovingDeviceType, ObjectHelper { IfcPumpType() : Object("IfcPumpType") {} - IfcPumpTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcRadiusDimension - struct IfcRadiusDimension : IfcDimensionCurveDirectedCallout, ObjectHelper { IfcRadiusDimension() : Object("IfcRadiusDimension") {} - - }; - - // C++ wrapper for IfcRailing - struct IfcRailing : IfcBuildingElement, ObjectHelper { IfcRailing() : Object("IfcRailing") {} - Maybe< IfcRailingTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcRailingType - struct IfcRailingType : IfcBuildingElementType, ObjectHelper { IfcRailingType() : Object("IfcRailingType") {} - IfcRailingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcRamp - struct IfcRamp : IfcBuildingElement, ObjectHelper { IfcRamp() : Object("IfcRamp") {} - IfcRampTypeEnum::Out ShapeType; - }; - - // C++ wrapper for IfcRampFlight - struct IfcRampFlight : IfcBuildingElement, ObjectHelper { IfcRampFlight() : Object("IfcRampFlight") {} - - }; - - // C++ wrapper for IfcRampFlightType - struct IfcRampFlightType : IfcBuildingElementType, ObjectHelper { IfcRampFlightType() : Object("IfcRampFlightType") {} - IfcRampFlightTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcRationalBezierCurve - struct IfcRationalBezierCurve : IfcBezierCurve, ObjectHelper { IfcRationalBezierCurve() : Object("IfcRationalBezierCurve") {} - ListOf< REAL, 2, 0 >::Out WeightsData; - }; - - // C++ wrapper for IfcRectangleProfileDef - struct IfcRectangleProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcRectangleProfileDef() : Object("IfcRectangleProfileDef") {} - IfcPositiveLengthMeasure::Out XDim; - IfcPositiveLengthMeasure::Out YDim; - }; - - // C++ wrapper for IfcRectangleHollowProfileDef - struct IfcRectangleHollowProfileDef : IfcRectangleProfileDef, ObjectHelper { IfcRectangleHollowProfileDef() : Object("IfcRectangleHollowProfileDef") {} - IfcPositiveLengthMeasure::Out WallThickness; - Maybe< IfcPositiveLengthMeasure::Out > InnerFilletRadius; - Maybe< IfcPositiveLengthMeasure::Out > OuterFilletRadius; - }; - - // C++ wrapper for IfcRectangularPyramid - struct IfcRectangularPyramid : IfcCsgPrimitive3D, ObjectHelper { IfcRectangularPyramid() : Object("IfcRectangularPyramid") {} - IfcPositiveLengthMeasure::Out XLength; - IfcPositiveLengthMeasure::Out YLength; - IfcPositiveLengthMeasure::Out Height; - }; - - // C++ wrapper for IfcRectangularTrimmedSurface - struct IfcRectangularTrimmedSurface : IfcBoundedSurface, ObjectHelper { IfcRectangularTrimmedSurface() : Object("IfcRectangularTrimmedSurface") {} - Lazy< IfcSurface > BasisSurface; - IfcParameterValue::Out U1; - IfcParameterValue::Out V1; - IfcParameterValue::Out U2; - IfcParameterValue::Out V2; - BOOLEAN::Out Usense; - BOOLEAN::Out Vsense; - }; - - // C++ wrapper for IfcReinforcingElement - struct IfcReinforcingElement : IfcBuildingElementComponent, ObjectHelper { IfcReinforcingElement() : Object("IfcReinforcingElement") {} - Maybe< IfcLabel::Out > SteelGrade; - }; - - // C++ wrapper for IfcReinforcingBar - struct IfcReinforcingBar : IfcReinforcingElement, ObjectHelper { IfcReinforcingBar() : Object("IfcReinforcingBar") {} - IfcPositiveLengthMeasure::Out NominalDiameter; - IfcAreaMeasure::Out CrossSectionArea; - Maybe< IfcPositiveLengthMeasure::Out > BarLength; - IfcReinforcingBarRoleEnum::Out BarRole; - Maybe< IfcReinforcingBarSurfaceEnum::Out > BarSurface; - }; - - // C++ wrapper for IfcReinforcingMesh - struct IfcReinforcingMesh : IfcReinforcingElement, ObjectHelper { IfcReinforcingMesh() : Object("IfcReinforcingMesh") {} - Maybe< IfcPositiveLengthMeasure::Out > MeshLength; - Maybe< IfcPositiveLengthMeasure::Out > MeshWidth; - IfcPositiveLengthMeasure::Out LongitudinalBarNominalDiameter; - IfcPositiveLengthMeasure::Out TransverseBarNominalDiameter; - IfcAreaMeasure::Out LongitudinalBarCrossSectionArea; - IfcAreaMeasure::Out TransverseBarCrossSectionArea; - IfcPositiveLengthMeasure::Out LongitudinalBarSpacing; - IfcPositiveLengthMeasure::Out TransverseBarSpacing; - }; - - // C++ wrapper for IfcRelationship - struct IfcRelationship : IfcRoot, ObjectHelper { IfcRelationship() : Object("IfcRelationship") {} - - }; - - // C++ wrapper for IfcRelDecomposes - struct IfcRelDecomposes : IfcRelationship, ObjectHelper { IfcRelDecomposes() : Object("IfcRelDecomposes") {} - Lazy< IfcObjectDefinition > RelatingObject; - ListOf< Lazy< IfcObjectDefinition >, 1, 0 > RelatedObjects; - }; - - // C++ wrapper for IfcRelAggregates - struct IfcRelAggregates : IfcRelDecomposes, ObjectHelper { IfcRelAggregates() : Object("IfcRelAggregates") {} - - }; - - // C++ wrapper for IfcRelConnects - struct IfcRelConnects : IfcRelationship, ObjectHelper { IfcRelConnects() : Object("IfcRelConnects") {} - - }; - - // C++ wrapper for IfcRelContainedInSpatialStructure - struct IfcRelContainedInSpatialStructure : IfcRelConnects, ObjectHelper { IfcRelContainedInSpatialStructure() : Object("IfcRelContainedInSpatialStructure") {} - ListOf< Lazy< IfcProduct >, 1, 0 > RelatedElements; - Lazy< IfcSpatialStructureElement > RelatingStructure; - }; - - // C++ wrapper for IfcRelDefines - struct IfcRelDefines : IfcRelationship, ObjectHelper { IfcRelDefines() : Object("IfcRelDefines") {} - ListOf< Lazy< IfcObject >, 1, 0 > RelatedObjects; - }; - - // C++ wrapper for IfcRelDefinesByProperties - struct IfcRelDefinesByProperties : IfcRelDefines, ObjectHelper { IfcRelDefinesByProperties() : Object("IfcRelDefinesByProperties") {} - Lazy< IfcPropertySetDefinition > RelatingPropertyDefinition; - }; - - // C++ wrapper for IfcRelFillsElement - struct IfcRelFillsElement : IfcRelConnects, ObjectHelper { IfcRelFillsElement() : Object("IfcRelFillsElement") {} - Lazy< IfcOpeningElement > RelatingOpeningElement; - Lazy< IfcElement > RelatedBuildingElement; - }; - - // C++ wrapper for IfcRelOverridesProperties - struct IfcRelOverridesProperties : IfcRelDefinesByProperties, ObjectHelper { IfcRelOverridesProperties() : Object("IfcRelOverridesProperties") {} - ListOf< Lazy< IfcProperty >, 1, 0 > OverridingProperties; - }; - - // C++ wrapper for IfcRelVoidsElement - struct IfcRelVoidsElement : IfcRelConnects, ObjectHelper { IfcRelVoidsElement() : Object("IfcRelVoidsElement") {} - Lazy< IfcElement > RelatingBuildingElement; - Lazy< IfcFeatureElementSubtraction > RelatedOpeningElement; - }; - - // C++ wrapper for IfcRepresentation - struct IfcRepresentation : ObjectHelper { IfcRepresentation() : Object("IfcRepresentation") {} - Lazy< IfcRepresentationContext > ContextOfItems; - Maybe< IfcLabel::Out > RepresentationIdentifier; - Maybe< IfcLabel::Out > RepresentationType; - ListOf< Lazy< IfcRepresentationItem >, 1, 0 > Items; - }; - - // C++ wrapper for IfcRepresentationMap - struct IfcRepresentationMap : ObjectHelper { IfcRepresentationMap() : Object("IfcRepresentationMap") {} - IfcAxis2Placement::Out MappingOrigin; - Lazy< IfcRepresentation > MappedRepresentation; - }; - - // C++ wrapper for IfcRevolvedAreaSolid - struct IfcRevolvedAreaSolid : IfcSweptAreaSolid, ObjectHelper { IfcRevolvedAreaSolid() : Object("IfcRevolvedAreaSolid") {} - Lazy< IfcAxis1Placement > Axis; - IfcPlaneAngleMeasure::Out Angle; - }; - - // C++ wrapper for IfcRightCircularCone - struct IfcRightCircularCone : IfcCsgPrimitive3D, ObjectHelper { IfcRightCircularCone() : Object("IfcRightCircularCone") {} - IfcPositiveLengthMeasure::Out Height; - IfcPositiveLengthMeasure::Out BottomRadius; - }; - - // C++ wrapper for IfcRightCircularCylinder - struct IfcRightCircularCylinder : IfcCsgPrimitive3D, ObjectHelper { IfcRightCircularCylinder() : Object("IfcRightCircularCylinder") {} - IfcPositiveLengthMeasure::Out Height; - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcRoof - struct IfcRoof : IfcBuildingElement, ObjectHelper { IfcRoof() : Object("IfcRoof") {} - IfcRoofTypeEnum::Out ShapeType; - }; - - // C++ wrapper for IfcRoundedEdgeFeature - struct IfcRoundedEdgeFeature : IfcEdgeFeature, ObjectHelper { IfcRoundedEdgeFeature() : Object("IfcRoundedEdgeFeature") {} - Maybe< IfcPositiveLengthMeasure::Out > Radius; - }; - - // C++ wrapper for IfcRoundedRectangleProfileDef - struct IfcRoundedRectangleProfileDef : IfcRectangleProfileDef, ObjectHelper { IfcRoundedRectangleProfileDef() : Object("IfcRoundedRectangleProfileDef") {} - IfcPositiveLengthMeasure::Out RoundingRadius; - }; - - // C++ wrapper for IfcSIUnit - struct IfcSIUnit : IfcNamedUnit, ObjectHelper { IfcSIUnit() : Object("IfcSIUnit") {} - Maybe< IfcSIPrefix::Out > Prefix; - IfcSIUnitName::Out Name; - }; - - // C++ wrapper for IfcSanitaryTerminalType - struct IfcSanitaryTerminalType : IfcFlowTerminalType, ObjectHelper { IfcSanitaryTerminalType() : Object("IfcSanitaryTerminalType") {} - IfcSanitaryTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcScheduleTimeControl - struct IfcScheduleTimeControl : IfcControl, ObjectHelper { IfcScheduleTimeControl() : Object("IfcScheduleTimeControl") {} - Maybe< IfcDateTimeSelect::Out > ActualStart; - Maybe< IfcDateTimeSelect::Out > EarlyStart; - Maybe< IfcDateTimeSelect::Out > LateStart; - Maybe< IfcDateTimeSelect::Out > ScheduleStart; - Maybe< IfcDateTimeSelect::Out > ActualFinish; - Maybe< IfcDateTimeSelect::Out > EarlyFinish; - Maybe< IfcDateTimeSelect::Out > LateFinish; - Maybe< IfcDateTimeSelect::Out > ScheduleFinish; - Maybe< IfcTimeMeasure::Out > ScheduleDuration; - Maybe< IfcTimeMeasure::Out > ActualDuration; - Maybe< IfcTimeMeasure::Out > RemainingTime; - Maybe< IfcTimeMeasure::Out > FreeFloat; - Maybe< IfcTimeMeasure::Out > TotalFloat; - Maybe< BOOLEAN::Out > IsCritical; - Maybe< IfcDateTimeSelect::Out > StatusTime; - Maybe< IfcTimeMeasure::Out > StartFloat; - Maybe< IfcTimeMeasure::Out > FinishFloat; - Maybe< IfcPositiveRatioMeasure::Out > Completion; - }; - - // C++ wrapper for IfcSectionedSpine - struct IfcSectionedSpine : IfcGeometricRepresentationItem, ObjectHelper { IfcSectionedSpine() : Object("IfcSectionedSpine") {} - Lazy< IfcCompositeCurve > SpineCurve; - ListOf< Lazy< IfcProfileDef >, 2, 0 > CrossSections; - ListOf< Lazy< IfcAxis2Placement3D >, 2, 0 > CrossSectionPositions; - }; - - // C++ wrapper for IfcSensorType - struct IfcSensorType : IfcDistributionControlElementType, ObjectHelper { IfcSensorType() : Object("IfcSensorType") {} - IfcSensorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcServiceLife - struct IfcServiceLife : IfcControl, ObjectHelper { IfcServiceLife() : Object("IfcServiceLife") {} - IfcServiceLifeTypeEnum::Out ServiceLifeType; - IfcTimeMeasure::Out ServiceLifeDuration; - }; - - // C++ wrapper for IfcShapeModel - struct IfcShapeModel : IfcRepresentation, ObjectHelper { IfcShapeModel() : Object("IfcShapeModel") {} - - }; - - // C++ wrapper for IfcShapeRepresentation - struct IfcShapeRepresentation : IfcShapeModel, ObjectHelper { IfcShapeRepresentation() : Object("IfcShapeRepresentation") {} - - }; - - // C++ wrapper for IfcShellBasedSurfaceModel - struct IfcShellBasedSurfaceModel : IfcGeometricRepresentationItem, ObjectHelper { IfcShellBasedSurfaceModel() : Object("IfcShellBasedSurfaceModel") {} - ListOf< IfcShell, 1, 0 >::Out SbsmBoundary; - }; - - // C++ wrapper for IfcSite - struct IfcSite : IfcSpatialStructureElement, ObjectHelper { IfcSite() : Object("IfcSite") {} - Maybe< IfcCompoundPlaneAngleMeasure::Out > RefLatitude; - Maybe< IfcCompoundPlaneAngleMeasure::Out > RefLongitude; - Maybe< IfcLengthMeasure::Out > RefElevation; - Maybe< IfcLabel::Out > LandTitleNumber; - Maybe< Lazy< NotImplemented > > SiteAddress; - }; - - // C++ wrapper for IfcSlab - struct IfcSlab : IfcBuildingElement, ObjectHelper { IfcSlab() : Object("IfcSlab") {} - Maybe< IfcSlabTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSlabType - struct IfcSlabType : IfcBuildingElementType, ObjectHelper { IfcSlabType() : Object("IfcSlabType") {} - IfcSlabTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSpace - struct IfcSpace : IfcSpatialStructureElement, ObjectHelper { IfcSpace() : Object("IfcSpace") {} - IfcInternalOrExternalEnum::Out InteriorOrExteriorSpace; - Maybe< IfcLengthMeasure::Out > ElevationWithFlooring; - }; - - // C++ wrapper for IfcSpaceHeaterType - struct IfcSpaceHeaterType : IfcEnergyConversionDeviceType, ObjectHelper { IfcSpaceHeaterType() : Object("IfcSpaceHeaterType") {} - IfcSpaceHeaterTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSpaceProgram - struct IfcSpaceProgram : IfcControl, ObjectHelper { IfcSpaceProgram() : Object("IfcSpaceProgram") {} - IfcIdentifier::Out SpaceProgramIdentifier; - Maybe< IfcAreaMeasure::Out > MaxRequiredArea; - Maybe< IfcAreaMeasure::Out > MinRequiredArea; - Maybe< Lazy< IfcSpatialStructureElement > > RequestedLocation; - IfcAreaMeasure::Out StandardRequiredArea; - }; - - // C++ wrapper for IfcSpatialStructureElementType - struct IfcSpatialStructureElementType : IfcElementType, ObjectHelper { IfcSpatialStructureElementType() : Object("IfcSpatialStructureElementType") {} - - }; - - // C++ wrapper for IfcSpaceType - struct IfcSpaceType : IfcSpatialStructureElementType, ObjectHelper { IfcSpaceType() : Object("IfcSpaceType") {} - IfcSpaceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSphere - struct IfcSphere : IfcCsgPrimitive3D, ObjectHelper { IfcSphere() : Object("IfcSphere") {} - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcStackTerminalType - struct IfcStackTerminalType : IfcFlowTerminalType, ObjectHelper { IfcStackTerminalType() : Object("IfcStackTerminalType") {} - IfcStackTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStair - struct IfcStair : IfcBuildingElement, ObjectHelper { IfcStair() : Object("IfcStair") {} - IfcStairTypeEnum::Out ShapeType; - }; - - // C++ wrapper for IfcStairFlight - struct IfcStairFlight : IfcBuildingElement, ObjectHelper { IfcStairFlight() : Object("IfcStairFlight") {} - Maybe< INTEGER::Out > NumberOfRiser; - Maybe< INTEGER::Out > NumberOfTreads; - Maybe< IfcPositiveLengthMeasure::Out > RiserHeight; - Maybe< IfcPositiveLengthMeasure::Out > TreadLength; - }; - - // C++ wrapper for IfcStairFlightType - struct IfcStairFlightType : IfcBuildingElementType, ObjectHelper { IfcStairFlightType() : Object("IfcStairFlightType") {} - IfcStairFlightTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStructuralActivity - struct IfcStructuralActivity : IfcProduct, ObjectHelper { IfcStructuralActivity() : Object("IfcStructuralActivity") {} - Lazy< NotImplemented > AppliedLoad; - IfcGlobalOrLocalEnum::Out GlobalOrLocal; - }; - - // C++ wrapper for IfcStructuralAction - struct IfcStructuralAction : IfcStructuralActivity, ObjectHelper { IfcStructuralAction() : Object("IfcStructuralAction") {} - BOOLEAN::Out DestabilizingLoad; - Maybe< Lazy< IfcStructuralReaction > > CausedBy; - }; - - // C++ wrapper for IfcStructuralAnalysisModel - struct IfcStructuralAnalysisModel : IfcSystem, ObjectHelper { IfcStructuralAnalysisModel() : Object("IfcStructuralAnalysisModel") {} - IfcAnalysisModelTypeEnum::Out PredefinedType; - Maybe< Lazy< IfcAxis2Placement3D > > OrientationOf2DPlane; - Maybe< ListOf< Lazy< IfcStructuralLoadGroup >, 1, 0 > > LoadedBy; - Maybe< ListOf< Lazy< IfcStructuralResultGroup >, 1, 0 > > HasResults; - }; - - // C++ wrapper for IfcStructuralItem - struct IfcStructuralItem : IfcProduct, ObjectHelper { IfcStructuralItem() : Object("IfcStructuralItem") {} - - }; - - // C++ wrapper for IfcStructuralConnection - struct IfcStructuralConnection : IfcStructuralItem, ObjectHelper { IfcStructuralConnection() : Object("IfcStructuralConnection") {} - Maybe< Lazy< NotImplemented > > AppliedCondition; - }; - - // C++ wrapper for IfcStructuralCurveConnection - struct IfcStructuralCurveConnection : IfcStructuralConnection, ObjectHelper { IfcStructuralCurveConnection() : Object("IfcStructuralCurveConnection") {} - - }; - - // C++ wrapper for IfcStructuralMember - struct IfcStructuralMember : IfcStructuralItem, ObjectHelper { IfcStructuralMember() : Object("IfcStructuralMember") {} - - }; - - // C++ wrapper for IfcStructuralCurveMember - struct IfcStructuralCurveMember : IfcStructuralMember, ObjectHelper { IfcStructuralCurveMember() : Object("IfcStructuralCurveMember") {} - IfcStructuralCurveTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStructuralCurveMemberVarying - struct IfcStructuralCurveMemberVarying : IfcStructuralCurveMember, ObjectHelper { IfcStructuralCurveMemberVarying() : Object("IfcStructuralCurveMemberVarying") {} - - }; - - // C++ wrapper for IfcStructuralLinearAction - struct IfcStructuralLinearAction : IfcStructuralAction, ObjectHelper { IfcStructuralLinearAction() : Object("IfcStructuralLinearAction") {} - IfcProjectedOrTrueLengthEnum::Out ProjectedOrTrue; - }; - - // C++ wrapper for IfcStructuralLinearActionVarying - struct IfcStructuralLinearActionVarying : IfcStructuralLinearAction, ObjectHelper { IfcStructuralLinearActionVarying() : Object("IfcStructuralLinearActionVarying") {} - Lazy< NotImplemented > VaryingAppliedLoadLocation; - ListOf< Lazy< NotImplemented >, 1, 0 > SubsequentAppliedLoads; - }; - - // C++ wrapper for IfcStructuralLoadGroup - struct IfcStructuralLoadGroup : IfcGroup, ObjectHelper { IfcStructuralLoadGroup() : Object("IfcStructuralLoadGroup") {} - IfcLoadGroupTypeEnum::Out PredefinedType; - IfcActionTypeEnum::Out ActionType; - IfcActionSourceTypeEnum::Out ActionSource; - Maybe< IfcPositiveRatioMeasure::Out > Coefficient; - Maybe< IfcLabel::Out > Purpose; - }; - - // C++ wrapper for IfcStructuralPlanarAction - struct IfcStructuralPlanarAction : IfcStructuralAction, ObjectHelper { IfcStructuralPlanarAction() : Object("IfcStructuralPlanarAction") {} - IfcProjectedOrTrueLengthEnum::Out ProjectedOrTrue; - }; - - // C++ wrapper for IfcStructuralPlanarActionVarying - struct IfcStructuralPlanarActionVarying : IfcStructuralPlanarAction, ObjectHelper { IfcStructuralPlanarActionVarying() : Object("IfcStructuralPlanarActionVarying") {} - Lazy< NotImplemented > VaryingAppliedLoadLocation; - ListOf< Lazy< NotImplemented >, 2, 0 > SubsequentAppliedLoads; - }; - - // C++ wrapper for IfcStructuralPointAction - struct IfcStructuralPointAction : IfcStructuralAction, ObjectHelper { IfcStructuralPointAction() : Object("IfcStructuralPointAction") {} - - }; - - // C++ wrapper for IfcStructuralPointConnection - struct IfcStructuralPointConnection : IfcStructuralConnection, ObjectHelper { IfcStructuralPointConnection() : Object("IfcStructuralPointConnection") {} - - }; - - // C++ wrapper for IfcStructuralReaction - struct IfcStructuralReaction : IfcStructuralActivity, ObjectHelper { IfcStructuralReaction() : Object("IfcStructuralReaction") {} - - }; - - // C++ wrapper for IfcStructuralPointReaction - struct IfcStructuralPointReaction : IfcStructuralReaction, ObjectHelper { IfcStructuralPointReaction() : Object("IfcStructuralPointReaction") {} - - }; - - // C++ wrapper for IfcStructuralResultGroup - struct IfcStructuralResultGroup : IfcGroup, ObjectHelper { IfcStructuralResultGroup() : Object("IfcStructuralResultGroup") {} - IfcAnalysisTheoryTypeEnum::Out TheoryType; - Maybe< Lazy< IfcStructuralLoadGroup > > ResultForLoadGroup; - BOOLEAN::Out IsLinear; - }; - - // C++ wrapper for IfcStructuralSurfaceConnection - struct IfcStructuralSurfaceConnection : IfcStructuralConnection, ObjectHelper { IfcStructuralSurfaceConnection() : Object("IfcStructuralSurfaceConnection") {} - - }; - - // C++ wrapper for IfcStructuralSurfaceMember - struct IfcStructuralSurfaceMember : IfcStructuralMember, ObjectHelper { IfcStructuralSurfaceMember() : Object("IfcStructuralSurfaceMember") {} - IfcStructuralSurfaceTypeEnum::Out PredefinedType; - Maybe< IfcPositiveLengthMeasure::Out > Thickness; - }; - - // C++ wrapper for IfcStructuralSurfaceMemberVarying - struct IfcStructuralSurfaceMemberVarying : IfcStructuralSurfaceMember, ObjectHelper { IfcStructuralSurfaceMemberVarying() : Object("IfcStructuralSurfaceMemberVarying") {} - ListOf< IfcPositiveLengthMeasure, 2, 0 >::Out SubsequentThickness; - Lazy< NotImplemented > VaryingThicknessLocation; - }; - - // C++ wrapper for IfcStructuredDimensionCallout - struct IfcStructuredDimensionCallout : IfcDraughtingCallout, ObjectHelper { IfcStructuredDimensionCallout() : Object("IfcStructuredDimensionCallout") {} - - }; - - // C++ wrapper for IfcStyleModel - struct IfcStyleModel : IfcRepresentation, ObjectHelper { IfcStyleModel() : Object("IfcStyleModel") {} - - }; - - // C++ wrapper for IfcStyledRepresentation - struct IfcStyledRepresentation : IfcStyleModel, ObjectHelper { IfcStyledRepresentation() : Object("IfcStyledRepresentation") {} - - }; - - // C++ wrapper for IfcSubContractResource - struct IfcSubContractResource : IfcConstructionResource, ObjectHelper { IfcSubContractResource() : Object("IfcSubContractResource") {} - Maybe< IfcActorSelect::Out > SubContractor; - Maybe< IfcText::Out > JobDescription; - }; - - // C++ wrapper for IfcSubedge - struct IfcSubedge : IfcEdge, ObjectHelper { IfcSubedge() : Object("IfcSubedge") {} - Lazy< IfcEdge > ParentEdge; - }; - - // C++ wrapper for IfcSurfaceCurveSweptAreaSolid - struct IfcSurfaceCurveSweptAreaSolid : IfcSweptAreaSolid, ObjectHelper { IfcSurfaceCurveSweptAreaSolid() : Object("IfcSurfaceCurveSweptAreaSolid") {} - Lazy< IfcCurve > Directrix; - IfcParameterValue::Out StartParam; - IfcParameterValue::Out EndParam; - Lazy< IfcSurface > ReferenceSurface; - }; - - // C++ wrapper for IfcSweptSurface - struct IfcSweptSurface : IfcSurface, ObjectHelper { IfcSweptSurface() : Object("IfcSweptSurface") {} - Lazy< IfcProfileDef > SweptCurve; - Lazy< IfcAxis2Placement3D > Position; - }; - - // C++ wrapper for IfcSurfaceOfLinearExtrusion - struct IfcSurfaceOfLinearExtrusion : IfcSweptSurface, ObjectHelper { IfcSurfaceOfLinearExtrusion() : Object("IfcSurfaceOfLinearExtrusion") {} - Lazy< IfcDirection > ExtrudedDirection; - IfcLengthMeasure::Out Depth; - }; - - // C++ wrapper for IfcSurfaceOfRevolution - struct IfcSurfaceOfRevolution : IfcSweptSurface, ObjectHelper { IfcSurfaceOfRevolution() : Object("IfcSurfaceOfRevolution") {} - Lazy< IfcAxis1Placement > AxisPosition; - }; - - // C++ wrapper for IfcSurfaceStyle - struct IfcSurfaceStyle : IfcPresentationStyle, ObjectHelper { IfcSurfaceStyle() : Object("IfcSurfaceStyle") {} - IfcSurfaceSide::Out Side; - ListOf< IfcSurfaceStyleElementSelect, 1, 5 >::Out Styles; - }; - - // C++ wrapper for IfcSurfaceStyleShading - struct IfcSurfaceStyleShading : ObjectHelper { IfcSurfaceStyleShading() : Object("IfcSurfaceStyleShading") {} - Lazy< IfcColourRgb > SurfaceColour; - }; - - // C++ wrapper for IfcSurfaceStyleRendering - struct IfcSurfaceStyleRendering : IfcSurfaceStyleShading, ObjectHelper { IfcSurfaceStyleRendering() : Object("IfcSurfaceStyleRendering") {} - Maybe< IfcNormalisedRatioMeasure::Out > Transparency; - Maybe< IfcColourOrFactor::Out > DiffuseColour; - Maybe< IfcColourOrFactor::Out > TransmissionColour; - Maybe< IfcColourOrFactor::Out > DiffuseTransmissionColour; - Maybe< IfcColourOrFactor::Out > ReflectionColour; - Maybe< IfcColourOrFactor::Out > SpecularColour; - Maybe< IfcSpecularHighlightSelect::Out > SpecularHighlight; - IfcReflectanceMethodEnum::Out ReflectanceMethod; - }; - - // C++ wrapper for IfcSurfaceStyleWithTextures - struct IfcSurfaceStyleWithTextures : ObjectHelper { IfcSurfaceStyleWithTextures() : Object("IfcSurfaceStyleWithTextures") {} - ListOf< Lazy< NotImplemented >, 1, 0 > Textures; - }; - - // C++ wrapper for IfcSweptDiskSolid - struct IfcSweptDiskSolid : IfcSolidModel, ObjectHelper { IfcSweptDiskSolid() : Object("IfcSweptDiskSolid") {} - Lazy< IfcCurve > Directrix; - IfcPositiveLengthMeasure::Out Radius; - Maybe< IfcPositiveLengthMeasure::Out > InnerRadius; - IfcParameterValue::Out StartParam; - IfcParameterValue::Out EndParam; - }; - - // C++ wrapper for IfcSwitchingDeviceType - struct IfcSwitchingDeviceType : IfcFlowControllerType, ObjectHelper { IfcSwitchingDeviceType() : Object("IfcSwitchingDeviceType") {} - IfcSwitchingDeviceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSystemFurnitureElementType - struct IfcSystemFurnitureElementType : IfcFurnishingElementType, ObjectHelper { IfcSystemFurnitureElementType() : Object("IfcSystemFurnitureElementType") {} - - }; - - // C++ wrapper for IfcTShapeProfileDef - struct IfcTShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcTShapeProfileDef() : Object("IfcTShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - IfcPositiveLengthMeasure::Out FlangeWidth; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out FlangeThickness; - Maybe< IfcPositiveLengthMeasure::Out > FilletRadius; - Maybe< IfcPositiveLengthMeasure::Out > FlangeEdgeRadius; - Maybe< IfcPositiveLengthMeasure::Out > WebEdgeRadius; - Maybe< IfcPlaneAngleMeasure::Out > WebSlope; - Maybe< IfcPlaneAngleMeasure::Out > FlangeSlope; - Maybe< IfcPositiveLengthMeasure::Out > CentreOfGravityInY; - }; - - // C++ wrapper for IfcTankType - struct IfcTankType : IfcFlowStorageDeviceType, ObjectHelper { IfcTankType() : Object("IfcTankType") {} - IfcTankTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcTendon - struct IfcTendon : IfcReinforcingElement, ObjectHelper { IfcTendon() : Object("IfcTendon") {} - IfcTendonTypeEnum::Out PredefinedType; - IfcPositiveLengthMeasure::Out NominalDiameter; - IfcAreaMeasure::Out CrossSectionArea; - Maybe< IfcForceMeasure::Out > TensionForce; - Maybe< IfcPressureMeasure::Out > PreStress; - Maybe< IfcNormalisedRatioMeasure::Out > FrictionCoefficient; - Maybe< IfcPositiveLengthMeasure::Out > AnchorageSlip; - Maybe< IfcPositiveLengthMeasure::Out > MinCurvatureRadius; - }; - - // C++ wrapper for IfcTendonAnchor - struct IfcTendonAnchor : IfcReinforcingElement, ObjectHelper { IfcTendonAnchor() : Object("IfcTendonAnchor") {} - - }; - - // C++ wrapper for IfcTextLiteral - struct IfcTextLiteral : IfcGeometricRepresentationItem, ObjectHelper { IfcTextLiteral() : Object("IfcTextLiteral") {} - IfcPresentableText::Out Literal; - IfcAxis2Placement::Out Placement; - IfcTextPath::Out Path; - }; - - // C++ wrapper for IfcTextLiteralWithExtent - struct IfcTextLiteralWithExtent : IfcTextLiteral, ObjectHelper { IfcTextLiteralWithExtent() : Object("IfcTextLiteralWithExtent") {} - Lazy< IfcPlanarExtent > Extent; - IfcBoxAlignment::Out BoxAlignment; - }; - - // C++ wrapper for IfcTimeSeriesSchedule - struct IfcTimeSeriesSchedule : IfcControl, ObjectHelper { IfcTimeSeriesSchedule() : Object("IfcTimeSeriesSchedule") {} - Maybe< ListOf< IfcDateTimeSelect, 1, 0 >::Out > ApplicableDates; - IfcTimeSeriesScheduleTypeEnum::Out TimeSeriesScheduleType; - Lazy< NotImplemented > TimeSeries; - }; - - // C++ wrapper for IfcTopologyRepresentation - struct IfcTopologyRepresentation : IfcShapeModel, ObjectHelper { IfcTopologyRepresentation() : Object("IfcTopologyRepresentation") {} - - }; - - // C++ wrapper for IfcTransformerType - struct IfcTransformerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcTransformerType() : Object("IfcTransformerType") {} - IfcTransformerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcTransportElement - struct IfcTransportElement : IfcElement, ObjectHelper { IfcTransportElement() : Object("IfcTransportElement") {} - Maybe< IfcTransportElementTypeEnum::Out > OperationType; - Maybe< IfcMassMeasure::Out > CapacityByWeight; - Maybe< IfcCountMeasure::Out > CapacityByNumber; - }; - - // C++ wrapper for IfcTransportElementType - struct IfcTransportElementType : IfcElementType, ObjectHelper { IfcTransportElementType() : Object("IfcTransportElementType") {} - IfcTransportElementTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcTrapeziumProfileDef - struct IfcTrapeziumProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcTrapeziumProfileDef() : Object("IfcTrapeziumProfileDef") {} - IfcPositiveLengthMeasure::Out BottomXDim; - IfcPositiveLengthMeasure::Out TopXDim; - IfcPositiveLengthMeasure::Out YDim; - IfcLengthMeasure::Out TopXOffset; - }; - - // C++ wrapper for IfcTrimmedCurve - struct IfcTrimmedCurve : IfcBoundedCurve, ObjectHelper { IfcTrimmedCurve() : Object("IfcTrimmedCurve") {} - Lazy< IfcCurve > BasisCurve; - ListOf< IfcTrimmingSelect, 1, 2 >::Out Trim1; - ListOf< IfcTrimmingSelect, 1, 2 >::Out Trim2; - BOOLEAN::Out SenseAgreement; - IfcTrimmingPreference::Out MasterRepresentation; - }; - - // C++ wrapper for IfcTubeBundleType - struct IfcTubeBundleType : IfcEnergyConversionDeviceType, ObjectHelper { IfcTubeBundleType() : Object("IfcTubeBundleType") {} - IfcTubeBundleTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcTwoDirectionRepeatFactor - struct IfcTwoDirectionRepeatFactor : IfcOneDirectionRepeatFactor, ObjectHelper { IfcTwoDirectionRepeatFactor() : Object("IfcTwoDirectionRepeatFactor") {} - Lazy< IfcVector > SecondRepeatFactor; - }; - - // C++ wrapper for IfcUShapeProfileDef - struct IfcUShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcUShapeProfileDef() : Object("IfcUShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - IfcPositiveLengthMeasure::Out FlangeWidth; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out FlangeThickness; - Maybe< IfcPositiveLengthMeasure::Out > FilletRadius; - Maybe< IfcPositiveLengthMeasure::Out > EdgeRadius; - Maybe< IfcPlaneAngleMeasure::Out > FlangeSlope; - Maybe< IfcPositiveLengthMeasure::Out > CentreOfGravityInX; - }; - - // C++ wrapper for IfcUnitAssignment - struct IfcUnitAssignment : ObjectHelper { IfcUnitAssignment() : Object("IfcUnitAssignment") {} - ListOf< IfcUnit, 1, 0 >::Out Units; - }; - - // C++ wrapper for IfcUnitaryEquipmentType - struct IfcUnitaryEquipmentType : IfcEnergyConversionDeviceType, ObjectHelper { IfcUnitaryEquipmentType() : Object("IfcUnitaryEquipmentType") {} - IfcUnitaryEquipmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcValveType - struct IfcValveType : IfcFlowControllerType, ObjectHelper { IfcValveType() : Object("IfcValveType") {} - IfcValveTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcVector - struct IfcVector : IfcGeometricRepresentationItem, ObjectHelper { IfcVector() : Object("IfcVector") {} - Lazy< IfcDirection > Orientation; - IfcLengthMeasure::Out Magnitude; - }; - - // C++ wrapper for IfcVertex - struct IfcVertex : IfcTopologicalRepresentationItem, ObjectHelper { IfcVertex() : Object("IfcVertex") {} - - }; - - // C++ wrapper for IfcVertexLoop - struct IfcVertexLoop : IfcLoop, ObjectHelper { IfcVertexLoop() : Object("IfcVertexLoop") {} - Lazy< IfcVertex > LoopVertex; - }; - - // C++ wrapper for IfcVertexPoint - struct IfcVertexPoint : IfcVertex, ObjectHelper { IfcVertexPoint() : Object("IfcVertexPoint") {} - Lazy< IfcPoint > VertexGeometry; - }; - - // C++ wrapper for IfcVibrationIsolatorType - struct IfcVibrationIsolatorType : IfcDiscreteAccessoryType, ObjectHelper { IfcVibrationIsolatorType() : Object("IfcVibrationIsolatorType") {} - IfcVibrationIsolatorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcVirtualElement - struct IfcVirtualElement : IfcElement, ObjectHelper { IfcVirtualElement() : Object("IfcVirtualElement") {} - - }; - - // C++ wrapper for IfcWall - struct IfcWall : IfcBuildingElement, ObjectHelper { IfcWall() : Object("IfcWall") {} - - }; - - // C++ wrapper for IfcWallStandardCase - struct IfcWallStandardCase : IfcWall, ObjectHelper { IfcWallStandardCase() : Object("IfcWallStandardCase") {} - - }; - - // C++ wrapper for IfcWallType - struct IfcWallType : IfcBuildingElementType, ObjectHelper { IfcWallType() : Object("IfcWallType") {} - IfcWallTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcWasteTerminalType - struct IfcWasteTerminalType : IfcFlowTerminalType, ObjectHelper { IfcWasteTerminalType() : Object("IfcWasteTerminalType") {} - IfcWasteTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcWindow - struct IfcWindow : IfcBuildingElement, ObjectHelper { IfcWindow() : Object("IfcWindow") {} - Maybe< IfcPositiveLengthMeasure::Out > OverallHeight; - Maybe< IfcPositiveLengthMeasure::Out > OverallWidth; - }; - - // C++ wrapper for IfcWindowStyle - struct IfcWindowStyle : IfcTypeProduct, ObjectHelper { IfcWindowStyle() : Object("IfcWindowStyle") {} - IfcWindowStyleConstructionEnum::Out ConstructionType; - IfcWindowStyleOperationEnum::Out OperationType; - BOOLEAN::Out ParameterTakesPrecedence; - BOOLEAN::Out Sizeable; - }; - - // C++ wrapper for IfcWorkControl - struct IfcWorkControl : IfcControl, ObjectHelper { IfcWorkControl() : Object("IfcWorkControl") {} - IfcIdentifier::Out Identifier; - IfcDateTimeSelect::Out CreationDate; - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > Creators; - Maybe< IfcLabel::Out > Purpose; - Maybe< IfcTimeMeasure::Out > Duration; - Maybe< IfcTimeMeasure::Out > TotalFloat; - IfcDateTimeSelect::Out StartTime; - Maybe< IfcDateTimeSelect::Out > FinishTime; - Maybe< IfcWorkControlTypeEnum::Out > WorkControlType; - Maybe< IfcLabel::Out > UserDefinedControlType; - }; - - // C++ wrapper for IfcWorkPlan - struct IfcWorkPlan : IfcWorkControl, ObjectHelper { IfcWorkPlan() : Object("IfcWorkPlan") {} - - }; - - // C++ wrapper for IfcWorkSchedule - struct IfcWorkSchedule : IfcWorkControl, ObjectHelper { IfcWorkSchedule() : Object("IfcWorkSchedule") {} - - }; - - // C++ wrapper for IfcZShapeProfileDef - struct IfcZShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcZShapeProfileDef() : Object("IfcZShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - IfcPositiveLengthMeasure::Out FlangeWidth; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out FlangeThickness; - Maybe< IfcPositiveLengthMeasure::Out > FilletRadius; - Maybe< IfcPositiveLengthMeasure::Out > EdgeRadius; - }; - - // C++ wrapper for IfcZone - struct IfcZone : IfcGroup, ObjectHelper { IfcZone() : Object("IfcZone") {} - - }; - - void GetSchema(EXPRESS::ConversionSchema& out); - } //! Schema_2x3 -} //! IFC - -namespace STEP { - - // ****************************************************************************** - // Converter stubs - // ****************************************************************************** - -#define DECL_CONV_STUB(type) template <> size_t GenericFill(const STEP::DB& db, const EXPRESS::LIST& params, IFC::Schema_2x3::type* in) - - DECL_CONV_STUB(IfcRepresentationItem); - DECL_CONV_STUB(IfcGeometricRepresentationItem); - DECL_CONV_STUB(IfcCurve); - DECL_CONV_STUB(IfcBoundedCurve); - DECL_CONV_STUB(IfcCompositeCurve); - DECL_CONV_STUB(Ifc2DCompositeCurve); - DECL_CONV_STUB(IfcRoot); - DECL_CONV_STUB(IfcObjectDefinition); - DECL_CONV_STUB(IfcObject); - DECL_CONV_STUB(IfcControl); - DECL_CONV_STUB(IfcActionRequest); - DECL_CONV_STUB(IfcActor); - DECL_CONV_STUB(IfcTypeObject); - DECL_CONV_STUB(IfcTypeProduct); - DECL_CONV_STUB(IfcElementType); - DECL_CONV_STUB(IfcDistributionElementType); - DECL_CONV_STUB(IfcDistributionControlElementType); - DECL_CONV_STUB(IfcActuatorType); - DECL_CONV_STUB(IfcDistributionFlowElementType); - DECL_CONV_STUB(IfcFlowControllerType); - DECL_CONV_STUB(IfcAirTerminalBoxType); - DECL_CONV_STUB(IfcFlowTerminalType); - DECL_CONV_STUB(IfcAirTerminalType); - DECL_CONV_STUB(IfcEnergyConversionDeviceType); - DECL_CONV_STUB(IfcAirToAirHeatRecoveryType); - DECL_CONV_STUB(IfcAlarmType); - DECL_CONV_STUB(IfcDraughtingCallout); - DECL_CONV_STUB(IfcDimensionCurveDirectedCallout); - DECL_CONV_STUB(IfcAngularDimension); - DECL_CONV_STUB(IfcProduct); - DECL_CONV_STUB(IfcAnnotation); - DECL_CONV_STUB(IfcStyledItem); - DECL_CONV_STUB(IfcAnnotationOccurrence); - DECL_CONV_STUB(IfcAnnotationCurveOccurrence); - DECL_CONV_STUB(IfcAnnotationFillArea); - DECL_CONV_STUB(IfcAnnotationFillAreaOccurrence); - DECL_CONV_STUB(IfcAnnotationSurface); - DECL_CONV_STUB(IfcAnnotationSurfaceOccurrence); - DECL_CONV_STUB(IfcAnnotationSymbolOccurrence); - DECL_CONV_STUB(IfcAnnotationTextOccurrence); - DECL_CONV_STUB(IfcProfileDef); - DECL_CONV_STUB(IfcArbitraryClosedProfileDef); - DECL_CONV_STUB(IfcArbitraryOpenProfileDef); - DECL_CONV_STUB(IfcArbitraryProfileDefWithVoids); - DECL_CONV_STUB(IfcGroup); - DECL_CONV_STUB(IfcAsset); - DECL_CONV_STUB(IfcParameterizedProfileDef); - DECL_CONV_STUB(IfcIShapeProfileDef); - DECL_CONV_STUB(IfcAsymmetricIShapeProfileDef); - DECL_CONV_STUB(IfcPlacement); - DECL_CONV_STUB(IfcAxis1Placement); - DECL_CONV_STUB(IfcAxis2Placement2D); - DECL_CONV_STUB(IfcAxis2Placement3D); - DECL_CONV_STUB(IfcBSplineCurve); - DECL_CONV_STUB(IfcElement); - DECL_CONV_STUB(IfcBuildingElement); - DECL_CONV_STUB(IfcBeam); - DECL_CONV_STUB(IfcBuildingElementType); - DECL_CONV_STUB(IfcBeamType); - DECL_CONV_STUB(IfcBezierCurve); - DECL_CONV_STUB(IfcCsgPrimitive3D); - DECL_CONV_STUB(IfcBlock); - DECL_CONV_STUB(IfcBoilerType); - DECL_CONV_STUB(IfcBooleanResult); - DECL_CONV_STUB(IfcBooleanClippingResult); - DECL_CONV_STUB(IfcSurface); - DECL_CONV_STUB(IfcBoundedSurface); - DECL_CONV_STUB(IfcBoundingBox); - DECL_CONV_STUB(IfcHalfSpaceSolid); - DECL_CONV_STUB(IfcBoxedHalfSpace); - DECL_CONV_STUB(IfcSpatialStructureElement); - DECL_CONV_STUB(IfcBuilding); - DECL_CONV_STUB(IfcBuildingElementComponent); - DECL_CONV_STUB(IfcBuildingElementPart); - DECL_CONV_STUB(IfcBuildingElementProxy); - DECL_CONV_STUB(IfcBuildingElementProxyType); - DECL_CONV_STUB(IfcBuildingStorey); - DECL_CONV_STUB(IfcCShapeProfileDef); - DECL_CONV_STUB(IfcFlowFittingType); - DECL_CONV_STUB(IfcCableCarrierFittingType); - DECL_CONV_STUB(IfcFlowSegmentType); - DECL_CONV_STUB(IfcCableCarrierSegmentType); - DECL_CONV_STUB(IfcCableSegmentType); - DECL_CONV_STUB(IfcPoint); - DECL_CONV_STUB(IfcCartesianPoint); - DECL_CONV_STUB(IfcCartesianTransformationOperator); - DECL_CONV_STUB(IfcCartesianTransformationOperator2D); - DECL_CONV_STUB(IfcCartesianTransformationOperator2DnonUniform); - DECL_CONV_STUB(IfcCartesianTransformationOperator3D); - DECL_CONV_STUB(IfcCartesianTransformationOperator3DnonUniform); - DECL_CONV_STUB(IfcCenterLineProfileDef); - DECL_CONV_STUB(IfcFeatureElement); - DECL_CONV_STUB(IfcFeatureElementSubtraction); - DECL_CONV_STUB(IfcEdgeFeature); - DECL_CONV_STUB(IfcChamferEdgeFeature); - DECL_CONV_STUB(IfcChillerType); - DECL_CONV_STUB(IfcConic); - DECL_CONV_STUB(IfcCircle); - DECL_CONV_STUB(IfcCircleProfileDef); - DECL_CONV_STUB(IfcCircleHollowProfileDef); - DECL_CONV_STUB(IfcTopologicalRepresentationItem); - DECL_CONV_STUB(IfcConnectedFaceSet); - DECL_CONV_STUB(IfcClosedShell); - DECL_CONV_STUB(IfcCoilType); - DECL_CONV_STUB(IfcColourSpecification); - DECL_CONV_STUB(IfcColourRgb); - DECL_CONV_STUB(IfcColumn); - DECL_CONV_STUB(IfcColumnType); - DECL_CONV_STUB(IfcProperty); - DECL_CONV_STUB(IfcComplexProperty); - DECL_CONV_STUB(IfcCompositeCurveSegment); - DECL_CONV_STUB(IfcCompositeProfileDef); - DECL_CONV_STUB(IfcFlowMovingDeviceType); - DECL_CONV_STUB(IfcCompressorType); - DECL_CONV_STUB(IfcCondenserType); - DECL_CONV_STUB(IfcCondition); - DECL_CONV_STUB(IfcConditionCriterion); - DECL_CONV_STUB(IfcResource); - DECL_CONV_STUB(IfcConstructionResource); - DECL_CONV_STUB(IfcConstructionEquipmentResource); - DECL_CONV_STUB(IfcConstructionMaterialResource); - DECL_CONV_STUB(IfcConstructionProductResource); - DECL_CONV_STUB(IfcNamedUnit); - DECL_CONV_STUB(IfcContextDependentUnit); - DECL_CONV_STUB(IfcControllerType); - DECL_CONV_STUB(IfcConversionBasedUnit); - DECL_CONV_STUB(IfcCooledBeamType); - DECL_CONV_STUB(IfcCoolingTowerType); - DECL_CONV_STUB(IfcCostItem); - DECL_CONV_STUB(IfcCostSchedule); - DECL_CONV_STUB(IfcCovering); - DECL_CONV_STUB(IfcCoveringType); - DECL_CONV_STUB(IfcCraneRailAShapeProfileDef); - DECL_CONV_STUB(IfcCraneRailFShapeProfileDef); - DECL_CONV_STUB(IfcCrewResource); - DECL_CONV_STUB(IfcSolidModel); - DECL_CONV_STUB(IfcCsgSolid); - DECL_CONV_STUB(IfcCurtainWall); - DECL_CONV_STUB(IfcCurtainWallType); - DECL_CONV_STUB(IfcCurveBoundedPlane); - DECL_CONV_STUB(IfcPresentationStyle); - DECL_CONV_STUB(IfcDamperType); - DECL_CONV_STUB(IfcDefinedSymbol); - DECL_CONV_STUB(IfcDerivedProfileDef); - DECL_CONV_STUB(IfcDiameterDimension); - DECL_CONV_STUB(IfcDimensionCurve); - DECL_CONV_STUB(IfcTerminatorSymbol); - DECL_CONV_STUB(IfcDimensionCurveTerminator); - DECL_CONV_STUB(IfcDirection); - DECL_CONV_STUB(IfcElementComponent); - DECL_CONV_STUB(IfcDiscreteAccessory); - DECL_CONV_STUB(IfcElementComponentType); - DECL_CONV_STUB(IfcDiscreteAccessoryType); - DECL_CONV_STUB(IfcDistributionElement); - DECL_CONV_STUB(IfcDistributionFlowElement); - DECL_CONV_STUB(IfcDistributionChamberElement); - DECL_CONV_STUB(IfcDistributionChamberElementType); - DECL_CONV_STUB(IfcDistributionControlElement); - DECL_CONV_STUB(IfcPort); - DECL_CONV_STUB(IfcDistributionPort); - DECL_CONV_STUB(IfcDoor); - DECL_CONV_STUB(IfcPropertyDefinition); - DECL_CONV_STUB(IfcPropertySetDefinition); - DECL_CONV_STUB(IfcDoorStyle); - DECL_CONV_STUB(IfcDuctFittingType); - DECL_CONV_STUB(IfcDuctSegmentType); - DECL_CONV_STUB(IfcFlowTreatmentDeviceType); - DECL_CONV_STUB(IfcDuctSilencerType); - DECL_CONV_STUB(IfcEdge); - DECL_CONV_STUB(IfcEdgeCurve); - DECL_CONV_STUB(IfcLoop); - DECL_CONV_STUB(IfcEdgeLoop); - DECL_CONV_STUB(IfcElectricApplianceType); - DECL_CONV_STUB(IfcFlowController); - DECL_CONV_STUB(IfcElectricDistributionPoint); - DECL_CONV_STUB(IfcFlowStorageDeviceType); - DECL_CONV_STUB(IfcElectricFlowStorageDeviceType); - DECL_CONV_STUB(IfcElectricGeneratorType); - DECL_CONV_STUB(IfcElectricHeaterType); - DECL_CONV_STUB(IfcElectricMotorType); - DECL_CONV_STUB(IfcElectricTimeControlType); - DECL_CONV_STUB(IfcSystem); - DECL_CONV_STUB(IfcElectricalCircuit); - DECL_CONV_STUB(IfcElectricalElement); - DECL_CONV_STUB(IfcElementAssembly); - DECL_CONV_STUB(IfcElementQuantity); - DECL_CONV_STUB(IfcElementarySurface); - DECL_CONV_STUB(IfcEllipse); - DECL_CONV_STUB(IfcEllipseProfileDef); - DECL_CONV_STUB(IfcEnergyConversionDevice); - DECL_CONV_STUB(IfcEquipmentElement); - DECL_CONV_STUB(IfcEquipmentStandard); - DECL_CONV_STUB(IfcEvaporativeCoolerType); - DECL_CONV_STUB(IfcEvaporatorType); - DECL_CONV_STUB(IfcSweptAreaSolid); - DECL_CONV_STUB(IfcExtrudedAreaSolid); - DECL_CONV_STUB(IfcFace); - DECL_CONV_STUB(IfcFaceBasedSurfaceModel); - DECL_CONV_STUB(IfcFaceBound); - DECL_CONV_STUB(IfcFaceOuterBound); - DECL_CONV_STUB(IfcFaceSurface); - DECL_CONV_STUB(IfcManifoldSolidBrep); - DECL_CONV_STUB(IfcFacetedBrep); - DECL_CONV_STUB(IfcFacetedBrepWithVoids); - DECL_CONV_STUB(IfcFanType); - DECL_CONV_STUB(IfcFastener); - DECL_CONV_STUB(IfcFastenerType); - DECL_CONV_STUB(IfcFeatureElementAddition); - DECL_CONV_STUB(IfcFillAreaStyleHatching); - DECL_CONV_STUB(IfcFillAreaStyleTileSymbolWithStyle); - DECL_CONV_STUB(IfcFillAreaStyleTiles); - DECL_CONV_STUB(IfcFilterType); - DECL_CONV_STUB(IfcFireSuppressionTerminalType); - DECL_CONV_STUB(IfcFlowFitting); - DECL_CONV_STUB(IfcFlowInstrumentType); - DECL_CONV_STUB(IfcFlowMeterType); - DECL_CONV_STUB(IfcFlowMovingDevice); - DECL_CONV_STUB(IfcFlowSegment); - DECL_CONV_STUB(IfcFlowStorageDevice); - DECL_CONV_STUB(IfcFlowTerminal); - DECL_CONV_STUB(IfcFlowTreatmentDevice); - DECL_CONV_STUB(IfcFooting); - DECL_CONV_STUB(IfcFurnishingElement); - DECL_CONV_STUB(IfcFurnishingElementType); - DECL_CONV_STUB(IfcFurnitureStandard); - DECL_CONV_STUB(IfcFurnitureType); - DECL_CONV_STUB(IfcGasTerminalType); - DECL_CONV_STUB(IfcGeometricSet); - DECL_CONV_STUB(IfcGeometricCurveSet); - DECL_CONV_STUB(IfcRepresentationContext); - DECL_CONV_STUB(IfcGeometricRepresentationContext); - DECL_CONV_STUB(IfcGeometricRepresentationSubContext); - DECL_CONV_STUB(IfcGrid); - DECL_CONV_STUB(IfcObjectPlacement); - DECL_CONV_STUB(IfcGridPlacement); - DECL_CONV_STUB(IfcHeatExchangerType); - DECL_CONV_STUB(IfcHumidifierType); - DECL_CONV_STUB(IfcInventory); - DECL_CONV_STUB(IfcJunctionBoxType); - DECL_CONV_STUB(IfcLShapeProfileDef); - DECL_CONV_STUB(IfcLaborResource); - DECL_CONV_STUB(IfcLampType); - DECL_CONV_STUB(IfcLightFixtureType); - DECL_CONV_STUB(IfcLightSource); - DECL_CONV_STUB(IfcLightSourceAmbient); - DECL_CONV_STUB(IfcLightSourceDirectional); - DECL_CONV_STUB(IfcLightSourceGoniometric); - DECL_CONV_STUB(IfcLightSourcePositional); - DECL_CONV_STUB(IfcLightSourceSpot); - DECL_CONV_STUB(IfcLine); - DECL_CONV_STUB(IfcLinearDimension); - DECL_CONV_STUB(IfcLocalPlacement); - DECL_CONV_STUB(IfcMappedItem); - DECL_CONV_STUB(IfcProductRepresentation); - DECL_CONV_STUB(IfcMaterialDefinitionRepresentation); - DECL_CONV_STUB(IfcMeasureWithUnit); - DECL_CONV_STUB(IfcMechanicalFastener); - DECL_CONV_STUB(IfcMechanicalFastenerType); - DECL_CONV_STUB(IfcMember); - DECL_CONV_STUB(IfcMemberType); - DECL_CONV_STUB(IfcMotorConnectionType); - DECL_CONV_STUB(IfcProcess); - DECL_CONV_STUB(IfcTask); - DECL_CONV_STUB(IfcMove); - DECL_CONV_STUB(IfcOccupant); - DECL_CONV_STUB(IfcOffsetCurve2D); - DECL_CONV_STUB(IfcOffsetCurve3D); - DECL_CONV_STUB(IfcOneDirectionRepeatFactor); - DECL_CONV_STUB(IfcOpenShell); - DECL_CONV_STUB(IfcOpeningElement); - DECL_CONV_STUB(IfcOrderAction); - DECL_CONV_STUB(IfcOrientedEdge); - DECL_CONV_STUB(IfcOutletType); - DECL_CONV_STUB(IfcPath); - DECL_CONV_STUB(IfcPerformanceHistory); - DECL_CONV_STUB(IfcPermit); - DECL_CONV_STUB(IfcPile); - DECL_CONV_STUB(IfcPipeFittingType); - DECL_CONV_STUB(IfcPipeSegmentType); - DECL_CONV_STUB(IfcPlanarExtent); - DECL_CONV_STUB(IfcPlanarBox); - DECL_CONV_STUB(IfcPlane); - DECL_CONV_STUB(IfcPlate); - DECL_CONV_STUB(IfcPlateType); - DECL_CONV_STUB(IfcPointOnCurve); - DECL_CONV_STUB(IfcPointOnSurface); - DECL_CONV_STUB(IfcPolyLoop); - DECL_CONV_STUB(IfcPolygonalBoundedHalfSpace); - DECL_CONV_STUB(IfcPolyline); - DECL_CONV_STUB(IfcPresentationStyleAssignment); - DECL_CONV_STUB(IfcProcedure); - DECL_CONV_STUB(IfcProductDefinitionShape); - DECL_CONV_STUB(IfcProject); - DECL_CONV_STUB(IfcProjectOrder); - DECL_CONV_STUB(IfcProjectOrderRecord); - DECL_CONV_STUB(IfcProjectionCurve); - DECL_CONV_STUB(IfcProjectionElement); - DECL_CONV_STUB(IfcSimpleProperty); - DECL_CONV_STUB(IfcPropertyBoundedValue); - DECL_CONV_STUB(IfcPropertyEnumeratedValue); - DECL_CONV_STUB(IfcPropertyListValue); - DECL_CONV_STUB(IfcPropertyReferenceValue); - DECL_CONV_STUB(IfcPropertySet); - DECL_CONV_STUB(IfcPropertySingleValue); - DECL_CONV_STUB(IfcPropertyTableValue); - DECL_CONV_STUB(IfcProtectiveDeviceType); - DECL_CONV_STUB(IfcProxy); - DECL_CONV_STUB(IfcPumpType); - DECL_CONV_STUB(IfcRadiusDimension); - DECL_CONV_STUB(IfcRailing); - DECL_CONV_STUB(IfcRailingType); - DECL_CONV_STUB(IfcRamp); - DECL_CONV_STUB(IfcRampFlight); - DECL_CONV_STUB(IfcRampFlightType); - DECL_CONV_STUB(IfcRationalBezierCurve); - DECL_CONV_STUB(IfcRectangleProfileDef); - DECL_CONV_STUB(IfcRectangleHollowProfileDef); - DECL_CONV_STUB(IfcRectangularPyramid); - DECL_CONV_STUB(IfcRectangularTrimmedSurface); - DECL_CONV_STUB(IfcReinforcingElement); - DECL_CONV_STUB(IfcReinforcingBar); - DECL_CONV_STUB(IfcReinforcingMesh); - DECL_CONV_STUB(IfcRelationship); - DECL_CONV_STUB(IfcRelDecomposes); - DECL_CONV_STUB(IfcRelAggregates); - DECL_CONV_STUB(IfcRelConnects); - DECL_CONV_STUB(IfcRelContainedInSpatialStructure); - DECL_CONV_STUB(IfcRelDefines); - DECL_CONV_STUB(IfcRelDefinesByProperties); - DECL_CONV_STUB(IfcRelFillsElement); - DECL_CONV_STUB(IfcRelOverridesProperties); - DECL_CONV_STUB(IfcRelVoidsElement); - DECL_CONV_STUB(IfcRepresentation); - DECL_CONV_STUB(IfcRepresentationMap); - DECL_CONV_STUB(IfcRevolvedAreaSolid); - DECL_CONV_STUB(IfcRightCircularCone); - DECL_CONV_STUB(IfcRightCircularCylinder); - DECL_CONV_STUB(IfcRoof); - DECL_CONV_STUB(IfcRoundedEdgeFeature); - DECL_CONV_STUB(IfcRoundedRectangleProfileDef); - DECL_CONV_STUB(IfcSIUnit); - DECL_CONV_STUB(IfcSanitaryTerminalType); - DECL_CONV_STUB(IfcScheduleTimeControl); - DECL_CONV_STUB(IfcSectionedSpine); - DECL_CONV_STUB(IfcSensorType); - DECL_CONV_STUB(IfcServiceLife); - DECL_CONV_STUB(IfcShapeModel); - DECL_CONV_STUB(IfcShapeRepresentation); - DECL_CONV_STUB(IfcShellBasedSurfaceModel); - DECL_CONV_STUB(IfcSite); - DECL_CONV_STUB(IfcSlab); - DECL_CONV_STUB(IfcSlabType); - DECL_CONV_STUB(IfcSpace); - DECL_CONV_STUB(IfcSpaceHeaterType); - DECL_CONV_STUB(IfcSpaceProgram); - DECL_CONV_STUB(IfcSpatialStructureElementType); - DECL_CONV_STUB(IfcSpaceType); - DECL_CONV_STUB(IfcSphere); - DECL_CONV_STUB(IfcStackTerminalType); - DECL_CONV_STUB(IfcStair); - DECL_CONV_STUB(IfcStairFlight); - DECL_CONV_STUB(IfcStairFlightType); - DECL_CONV_STUB(IfcStructuralActivity); - DECL_CONV_STUB(IfcStructuralAction); - DECL_CONV_STUB(IfcStructuralAnalysisModel); - DECL_CONV_STUB(IfcStructuralItem); - DECL_CONV_STUB(IfcStructuralConnection); - DECL_CONV_STUB(IfcStructuralCurveConnection); - DECL_CONV_STUB(IfcStructuralMember); - DECL_CONV_STUB(IfcStructuralCurveMember); - DECL_CONV_STUB(IfcStructuralCurveMemberVarying); - DECL_CONV_STUB(IfcStructuralLinearAction); - DECL_CONV_STUB(IfcStructuralLinearActionVarying); - DECL_CONV_STUB(IfcStructuralLoadGroup); - DECL_CONV_STUB(IfcStructuralPlanarAction); - DECL_CONV_STUB(IfcStructuralPlanarActionVarying); - DECL_CONV_STUB(IfcStructuralPointAction); - DECL_CONV_STUB(IfcStructuralPointConnection); - DECL_CONV_STUB(IfcStructuralReaction); - DECL_CONV_STUB(IfcStructuralPointReaction); - DECL_CONV_STUB(IfcStructuralResultGroup); - DECL_CONV_STUB(IfcStructuralSurfaceConnection); - DECL_CONV_STUB(IfcStructuralSurfaceMember); - DECL_CONV_STUB(IfcStructuralSurfaceMemberVarying); - DECL_CONV_STUB(IfcStructuredDimensionCallout); - DECL_CONV_STUB(IfcStyleModel); - DECL_CONV_STUB(IfcStyledRepresentation); - DECL_CONV_STUB(IfcSubContractResource); - DECL_CONV_STUB(IfcSubedge); - DECL_CONV_STUB(IfcSurfaceCurveSweptAreaSolid); - DECL_CONV_STUB(IfcSweptSurface); - DECL_CONV_STUB(IfcSurfaceOfLinearExtrusion); - DECL_CONV_STUB(IfcSurfaceOfRevolution); - DECL_CONV_STUB(IfcSurfaceStyle); - DECL_CONV_STUB(IfcSurfaceStyleShading); - DECL_CONV_STUB(IfcSurfaceStyleRendering); - DECL_CONV_STUB(IfcSurfaceStyleWithTextures); - DECL_CONV_STUB(IfcSweptDiskSolid); - DECL_CONV_STUB(IfcSwitchingDeviceType); - DECL_CONV_STUB(IfcSystemFurnitureElementType); - DECL_CONV_STUB(IfcTShapeProfileDef); - DECL_CONV_STUB(IfcTankType); - DECL_CONV_STUB(IfcTendon); - DECL_CONV_STUB(IfcTendonAnchor); - DECL_CONV_STUB(IfcTextLiteral); - DECL_CONV_STUB(IfcTextLiteralWithExtent); - DECL_CONV_STUB(IfcTimeSeriesSchedule); - DECL_CONV_STUB(IfcTopologyRepresentation); - DECL_CONV_STUB(IfcTransformerType); - DECL_CONV_STUB(IfcTransportElement); - DECL_CONV_STUB(IfcTransportElementType); - DECL_CONV_STUB(IfcTrapeziumProfileDef); - DECL_CONV_STUB(IfcTrimmedCurve); - DECL_CONV_STUB(IfcTubeBundleType); - DECL_CONV_STUB(IfcTwoDirectionRepeatFactor); - DECL_CONV_STUB(IfcUShapeProfileDef); - DECL_CONV_STUB(IfcUnitAssignment); - DECL_CONV_STUB(IfcUnitaryEquipmentType); - DECL_CONV_STUB(IfcValveType); - DECL_CONV_STUB(IfcVector); - DECL_CONV_STUB(IfcVertex); - DECL_CONV_STUB(IfcVertexLoop); - DECL_CONV_STUB(IfcVertexPoint); - DECL_CONV_STUB(IfcVibrationIsolatorType); - DECL_CONV_STUB(IfcVirtualElement); - DECL_CONV_STUB(IfcWall); - DECL_CONV_STUB(IfcWallStandardCase); - DECL_CONV_STUB(IfcWallType); - DECL_CONV_STUB(IfcWasteTerminalType); - DECL_CONV_STUB(IfcWindow); - DECL_CONV_STUB(IfcWindowStyle); - DECL_CONV_STUB(IfcWorkControl); - DECL_CONV_STUB(IfcWorkPlan); - DECL_CONV_STUB(IfcWorkSchedule); - DECL_CONV_STUB(IfcZShapeProfileDef); - DECL_CONV_STUB(IfcZone); - - -#undef DECL_CONV_STUB - -} //! STEP -} //! Assimp - -#ifdef _MSC_VER -# pragma warning(pop) -#endif // _MSC_VER - -#endif // INCLUDED_IFC_READER_GEN_H diff --git a/libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.cpp b/libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.cpp deleted file mode 100644 index 1793229..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.cpp +++ /dev/null @@ -1,6207 +0,0 @@ -/* -Open Asset Import Library (ASSIMP) ----------------------------------------------------------------------- - -Copyright (c) 2006-2020, ASSIMP Development Team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the ASSIMP team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the ASSIMP Development Team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** MACHINE-GENERATED by scripts/ICFImporter/CppGenerator.py */ - -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER - -#include "AssimpPCH.h" -#include "IFCReaderGen_4.h" - -namespace Assimp { -using namespace IFC; -using namespace ::Assimp::IFC::Schema_4; - -namespace { - - typedef EXPRESS::ConversionSchema::SchemaEntry SchemaEntry; - const SchemaEntry schema_raw[] = { - SchemaEntry("ifcstrippedoptional",NULL ) -, SchemaEntry("ifcabsorbeddosemeasure",NULL ) -, SchemaEntry("ifcaccelerationmeasure",NULL ) -, SchemaEntry("ifcamountofsubstancemeasure",NULL ) -, SchemaEntry("ifcangularvelocitymeasure",NULL ) -, SchemaEntry("ifcarcindex",NULL ) -, SchemaEntry("ifcareadensitymeasure",NULL ) -, SchemaEntry("ifcareameasure",NULL ) -, SchemaEntry("ifcbinary",NULL ) -, SchemaEntry("ifcboolean",NULL ) -, SchemaEntry("ifcboxalignment",NULL ) -, SchemaEntry("ifccardinalpointreference",NULL ) -, SchemaEntry("ifccomplexnumber",NULL ) -, SchemaEntry("ifccompoundplaneanglemeasure",NULL ) -, SchemaEntry("ifccontextdependentmeasure",NULL ) -, SchemaEntry("ifccountmeasure",NULL ) -, SchemaEntry("ifccurvaturemeasure",NULL ) -, SchemaEntry("ifcdate",NULL ) -, SchemaEntry("ifcdatetime",NULL ) -, SchemaEntry("ifcdayinmonthnumber",NULL ) -, SchemaEntry("ifcdayinweeknumber",NULL ) -, SchemaEntry("ifcdescriptivemeasure",NULL ) -, SchemaEntry("ifcdimensioncount",NULL ) -, SchemaEntry("ifcdoseequivalentmeasure",NULL ) -, SchemaEntry("ifcduration",NULL ) -, SchemaEntry("ifcdynamicviscositymeasure",NULL ) -, SchemaEntry("ifcelectriccapacitancemeasure",NULL ) -, SchemaEntry("ifcelectricchargemeasure",NULL ) -, SchemaEntry("ifcelectricconductancemeasure",NULL ) -, SchemaEntry("ifcelectriccurrentmeasure",NULL ) -, SchemaEntry("ifcelectricresistancemeasure",NULL ) -, SchemaEntry("ifcelectricvoltagemeasure",NULL ) -, SchemaEntry("ifcenergymeasure",NULL ) -, SchemaEntry("ifcfontstyle",NULL ) -, SchemaEntry("ifcfontvariant",NULL ) -, SchemaEntry("ifcfontweight",NULL ) -, SchemaEntry("ifcforcemeasure",NULL ) -, SchemaEntry("ifcfrequencymeasure",NULL ) -, SchemaEntry("ifcgloballyuniqueid",NULL ) -, SchemaEntry("ifcheatfluxdensitymeasure",NULL ) -, SchemaEntry("ifcheatingvaluemeasure",NULL ) -, SchemaEntry("ifcidentifier",NULL ) -, SchemaEntry("ifcilluminancemeasure",NULL ) -, SchemaEntry("ifcinductancemeasure",NULL ) -, SchemaEntry("ifcinteger",NULL ) -, SchemaEntry("ifcintegercountratemeasure",NULL ) -, SchemaEntry("ifcionconcentrationmeasure",NULL ) -, SchemaEntry("ifcisothermalmoisturecapacitymeasure",NULL ) -, SchemaEntry("ifckinematicviscositymeasure",NULL ) -, SchemaEntry("ifclabel",NULL ) -, SchemaEntry("ifclanguageid",NULL ) -, SchemaEntry("ifclengthmeasure",NULL ) -, SchemaEntry("ifclineindex",NULL ) -, SchemaEntry("ifclinearforcemeasure",NULL ) -, SchemaEntry("ifclinearmomentmeasure",NULL ) -, SchemaEntry("ifclinearstiffnessmeasure",NULL ) -, SchemaEntry("ifclinearvelocitymeasure",NULL ) -, SchemaEntry("ifclogical",NULL ) -, SchemaEntry("ifcluminousfluxmeasure",NULL ) -, SchemaEntry("ifcluminousintensitydistributionmeasure",NULL ) -, SchemaEntry("ifcluminousintensitymeasure",NULL ) -, SchemaEntry("ifcmagneticfluxdensitymeasure",NULL ) -, SchemaEntry("ifcmagneticfluxmeasure",NULL ) -, SchemaEntry("ifcmassdensitymeasure",NULL ) -, SchemaEntry("ifcmassflowratemeasure",NULL ) -, SchemaEntry("ifcmassmeasure",NULL ) -, SchemaEntry("ifcmassperlengthmeasure",NULL ) -, SchemaEntry("ifcmodulusofelasticitymeasure",NULL ) -, SchemaEntry("ifcmodulusoflinearsubgradereactionmeasure",NULL ) -, SchemaEntry("ifcmodulusofrotationalsubgradereactionmeasure",NULL ) -, SchemaEntry("ifcmodulusofsubgradereactionmeasure",NULL ) -, SchemaEntry("ifcmoisturediffusivitymeasure",NULL ) -, SchemaEntry("ifcmolecularweightmeasure",NULL ) -, SchemaEntry("ifcmomentofinertiameasure",NULL ) -, SchemaEntry("ifcmonetarymeasure",NULL ) -, SchemaEntry("ifcmonthinyearnumber",NULL ) -, SchemaEntry("ifcnonnegativelengthmeasure",NULL ) -, SchemaEntry("ifcnormalisedratiomeasure",NULL ) -, SchemaEntry("ifcnumericmeasure",NULL ) -, SchemaEntry("ifcphmeasure",NULL ) -, SchemaEntry("ifcparametervalue",NULL ) -, SchemaEntry("ifcplanarforcemeasure",NULL ) -, SchemaEntry("ifcplaneanglemeasure",NULL ) -, SchemaEntry("ifcpositiveinteger",NULL ) -, SchemaEntry("ifcpositivelengthmeasure",NULL ) -, SchemaEntry("ifcpositiveplaneanglemeasure",NULL ) -, SchemaEntry("ifcpositiveratiomeasure",NULL ) -, SchemaEntry("ifcpowermeasure",NULL ) -, SchemaEntry("ifcpresentabletext",NULL ) -, SchemaEntry("ifcpressuremeasure",NULL ) -, SchemaEntry("ifcpropertysetdefinitionset",NULL ) -, SchemaEntry("ifcradioactivitymeasure",NULL ) -, SchemaEntry("ifcratiomeasure",NULL ) -, SchemaEntry("ifcreal",NULL ) -, SchemaEntry("ifcrotationalfrequencymeasure",NULL ) -, SchemaEntry("ifcrotationalmassmeasure",NULL ) -, SchemaEntry("ifcrotationalstiffnessmeasure",NULL ) -, SchemaEntry("ifcsectionmodulusmeasure",NULL ) -, SchemaEntry("ifcsectionalareaintegralmeasure",NULL ) -, SchemaEntry("ifcshearmodulusmeasure",NULL ) -, SchemaEntry("ifcsolidanglemeasure",NULL ) -, SchemaEntry("ifcsoundpowerlevelmeasure",NULL ) -, SchemaEntry("ifcsoundpowermeasure",NULL ) -, SchemaEntry("ifcsoundpressurelevelmeasure",NULL ) -, SchemaEntry("ifcsoundpressuremeasure",NULL ) -, SchemaEntry("ifcspecificheatcapacitymeasure",NULL ) -, SchemaEntry("ifcspecularexponent",NULL ) -, SchemaEntry("ifcspecularroughness",NULL ) -, SchemaEntry("ifctemperaturegradientmeasure",NULL ) -, SchemaEntry("ifctemperaturerateofchangemeasure",NULL ) -, SchemaEntry("ifctext",NULL ) -, SchemaEntry("ifctextalignment",NULL ) -, SchemaEntry("ifctextdecoration",NULL ) -, SchemaEntry("ifctextfontname",NULL ) -, SchemaEntry("ifctexttransformation",NULL ) -, SchemaEntry("ifcthermaladmittancemeasure",NULL ) -, SchemaEntry("ifcthermalconductivitymeasure",NULL ) -, SchemaEntry("ifcthermalexpansioncoefficientmeasure",NULL ) -, SchemaEntry("ifcthermalresistancemeasure",NULL ) -, SchemaEntry("ifcthermaltransmittancemeasure",NULL ) -, SchemaEntry("ifcthermodynamictemperaturemeasure",NULL ) -, SchemaEntry("ifctime",NULL ) -, SchemaEntry("ifctimemeasure",NULL ) -, SchemaEntry("ifctimestamp",NULL ) -, SchemaEntry("ifctorquemeasure",NULL ) -, SchemaEntry("ifcurireference",NULL ) -, SchemaEntry("ifcvaporpermeabilitymeasure",NULL ) -, SchemaEntry("ifcvolumemeasure",NULL ) -, SchemaEntry("ifcvolumetricflowratemeasure",NULL ) -, SchemaEntry("ifcwarpingconstantmeasure",NULL ) -, SchemaEntry("ifcwarpingmomentmeasure",NULL ) -, SchemaEntry("ifcactionrequesttypeenum",NULL ) -, SchemaEntry("ifcactionsourcetypeenum",NULL ) -, SchemaEntry("ifcactiontypeenum",NULL ) -, SchemaEntry("ifcactuatortypeenum",NULL ) -, SchemaEntry("ifcaddresstypeenum",NULL ) -, SchemaEntry("ifcairterminalboxtypeenum",NULL ) -, SchemaEntry("ifcairterminaltypeenum",NULL ) -, SchemaEntry("ifcairtoairheatrecoverytypeenum",NULL ) -, SchemaEntry("ifcalarmtypeenum",NULL ) -, SchemaEntry("ifcanalysismodeltypeenum",NULL ) -, SchemaEntry("ifcanalysistheorytypeenum",NULL ) -, SchemaEntry("ifcarithmeticoperatorenum",NULL ) -, SchemaEntry("ifcassemblyplaceenum",NULL ) -, SchemaEntry("ifcaudiovisualappliancetypeenum",NULL ) -, SchemaEntry("ifcbsplinecurveform",NULL ) -, SchemaEntry("ifcbsplinesurfaceform",NULL ) -, SchemaEntry("ifcbeamtypeenum",NULL ) -, SchemaEntry("ifcbenchmarkenum",NULL ) -, SchemaEntry("ifcboilertypeenum",NULL ) -, SchemaEntry("ifcbooleanoperator",NULL ) -, SchemaEntry("ifcbuildingelementparttypeenum",NULL ) -, SchemaEntry("ifcbuildingelementproxytypeenum",NULL ) -, SchemaEntry("ifcbuildingsystemtypeenum",NULL ) -, SchemaEntry("ifcburnertypeenum",NULL ) -, SchemaEntry("ifccablecarrierfittingtypeenum",NULL ) -, SchemaEntry("ifccablecarriersegmenttypeenum",NULL ) -, SchemaEntry("ifccablefittingtypeenum",NULL ) -, SchemaEntry("ifccablesegmenttypeenum",NULL ) -, SchemaEntry("ifcchangeactionenum",NULL ) -, SchemaEntry("ifcchillertypeenum",NULL ) -, SchemaEntry("ifcchimneytypeenum",NULL ) -, SchemaEntry("ifccoiltypeenum",NULL ) -, SchemaEntry("ifccolumntypeenum",NULL ) -, SchemaEntry("ifccommunicationsappliancetypeenum",NULL ) -, SchemaEntry("ifccomplexpropertytemplatetypeenum",NULL ) -, SchemaEntry("ifccompressortypeenum",NULL ) -, SchemaEntry("ifccondensertypeenum",NULL ) -, SchemaEntry("ifcconnectiontypeenum",NULL ) -, SchemaEntry("ifcconstraintenum",NULL ) -, SchemaEntry("ifcconstructionequipmentresourcetypeenum",NULL ) -, SchemaEntry("ifcconstructionmaterialresourcetypeenum",NULL ) -, SchemaEntry("ifcconstructionproductresourcetypeenum",NULL ) -, SchemaEntry("ifccontrollertypeenum",NULL ) -, SchemaEntry("ifccooledbeamtypeenum",NULL ) -, SchemaEntry("ifccoolingtowertypeenum",NULL ) -, SchemaEntry("ifccostitemtypeenum",NULL ) -, SchemaEntry("ifccostscheduletypeenum",NULL ) -, SchemaEntry("ifccoveringtypeenum",NULL ) -, SchemaEntry("ifccrewresourcetypeenum",NULL ) -, SchemaEntry("ifccurtainwalltypeenum",NULL ) -, SchemaEntry("ifccurveinterpolationenum",NULL ) -, SchemaEntry("ifcdampertypeenum",NULL ) -, SchemaEntry("ifcdataoriginenum",NULL ) -, SchemaEntry("ifcderivedunitenum",NULL ) -, SchemaEntry("ifcdirectionsenseenum",NULL ) -, SchemaEntry("ifcdiscreteaccessorytypeenum",NULL ) -, SchemaEntry("ifcdistributionchamberelementtypeenum",NULL ) -, SchemaEntry("ifcdistributionporttypeenum",NULL ) -, SchemaEntry("ifcdistributionsystemenum",NULL ) -, SchemaEntry("ifcdocumentconfidentialityenum",NULL ) -, SchemaEntry("ifcdocumentstatusenum",NULL ) -, SchemaEntry("ifcdoorpaneloperationenum",NULL ) -, SchemaEntry("ifcdoorpanelpositionenum",NULL ) -, SchemaEntry("ifcdoorstyleconstructionenum",NULL ) -, SchemaEntry("ifcdoorstyleoperationenum",NULL ) -, SchemaEntry("ifcdoortypeenum",NULL ) -, SchemaEntry("ifcdoortypeoperationenum",NULL ) -, SchemaEntry("ifcductfittingtypeenum",NULL ) -, SchemaEntry("ifcductsegmenttypeenum",NULL ) -, SchemaEntry("ifcductsilencertypeenum",NULL ) -, SchemaEntry("ifcelectricappliancetypeenum",NULL ) -, SchemaEntry("ifcelectricdistributionboardtypeenum",NULL ) -, SchemaEntry("ifcelectricflowstoragedevicetypeenum",NULL ) -, SchemaEntry("ifcelectricgeneratortypeenum",NULL ) -, SchemaEntry("ifcelectricmotortypeenum",NULL ) -, SchemaEntry("ifcelectrictimecontroltypeenum",NULL ) -, SchemaEntry("ifcelementassemblytypeenum",NULL ) -, SchemaEntry("ifcelementcompositionenum",NULL ) -, SchemaEntry("ifcenginetypeenum",NULL ) -, SchemaEntry("ifcevaporativecoolertypeenum",NULL ) -, SchemaEntry("ifcevaporatortypeenum",NULL ) -, SchemaEntry("ifceventtriggertypeenum",NULL ) -, SchemaEntry("ifceventtypeenum",NULL ) -, SchemaEntry("ifcexternalspatialelementtypeenum",NULL ) -, SchemaEntry("ifcfantypeenum",NULL ) -, SchemaEntry("ifcfastenertypeenum",NULL ) -, SchemaEntry("ifcfiltertypeenum",NULL ) -, SchemaEntry("ifcfiresuppressionterminaltypeenum",NULL ) -, SchemaEntry("ifcflowdirectionenum",NULL ) -, SchemaEntry("ifcflowinstrumenttypeenum",NULL ) -, SchemaEntry("ifcflowmetertypeenum",NULL ) -, SchemaEntry("ifcfootingtypeenum",NULL ) -, SchemaEntry("ifcfurnituretypeenum",NULL ) -, SchemaEntry("ifcgeographicelementtypeenum",NULL ) -, SchemaEntry("ifcgeometricprojectionenum",NULL ) -, SchemaEntry("ifcglobalorlocalenum",NULL ) -, SchemaEntry("ifcgridtypeenum",NULL ) -, SchemaEntry("ifcheatexchangertypeenum",NULL ) -, SchemaEntry("ifchumidifiertypeenum",NULL ) -, SchemaEntry("ifcinterceptortypeenum",NULL ) -, SchemaEntry("ifcinternalorexternalenum",NULL ) -, SchemaEntry("ifcinventorytypeenum",NULL ) -, SchemaEntry("ifcjunctionboxtypeenum",NULL ) -, SchemaEntry("ifcknottype",NULL ) -, SchemaEntry("ifclaborresourcetypeenum",NULL ) -, SchemaEntry("ifclamptypeenum",NULL ) -, SchemaEntry("ifclayersetdirectionenum",NULL ) -, SchemaEntry("ifclightdistributioncurveenum",NULL ) -, SchemaEntry("ifclightemissionsourceenum",NULL ) -, SchemaEntry("ifclightfixturetypeenum",NULL ) -, SchemaEntry("ifcloadgrouptypeenum",NULL ) -, SchemaEntry("ifclogicaloperatorenum",NULL ) -, SchemaEntry("ifcmechanicalfastenertypeenum",NULL ) -, SchemaEntry("ifcmedicaldevicetypeenum",NULL ) -, SchemaEntry("ifcmembertypeenum",NULL ) -, SchemaEntry("ifcmotorconnectiontypeenum",NULL ) -, SchemaEntry("ifcnullstyle",NULL ) -, SchemaEntry("ifcobjecttypeenum",NULL ) -, SchemaEntry("ifcobjectiveenum",NULL ) -, SchemaEntry("ifcoccupanttypeenum",NULL ) -, SchemaEntry("ifcopeningelementtypeenum",NULL ) -, SchemaEntry("ifcoutlettypeenum",NULL ) -, SchemaEntry("ifcperformancehistorytypeenum",NULL ) -, SchemaEntry("ifcpermeablecoveringoperationenum",NULL ) -, SchemaEntry("ifcpermittypeenum",NULL ) -, SchemaEntry("ifcphysicalorvirtualenum",NULL ) -, SchemaEntry("ifcpileconstructionenum",NULL ) -, SchemaEntry("ifcpiletypeenum",NULL ) -, SchemaEntry("ifcpipefittingtypeenum",NULL ) -, SchemaEntry("ifcpipesegmenttypeenum",NULL ) -, SchemaEntry("ifcplatetypeenum",NULL ) -, SchemaEntry("ifcpreferredsurfacecurverepresentation",NULL ) -, SchemaEntry("ifcproceduretypeenum",NULL ) -, SchemaEntry("ifcprofiletypeenum",NULL ) -, SchemaEntry("ifcprojectordertypeenum",NULL ) -, SchemaEntry("ifcprojectedortruelengthenum",NULL ) -, SchemaEntry("ifcprojectionelementtypeenum",NULL ) -, SchemaEntry("ifcpropertysettemplatetypeenum",NULL ) -, SchemaEntry("ifcprotectivedevicetrippingunittypeenum",NULL ) -, SchemaEntry("ifcprotectivedevicetypeenum",NULL ) -, SchemaEntry("ifcpumptypeenum",NULL ) -, SchemaEntry("ifcrailingtypeenum",NULL ) -, SchemaEntry("ifcrampflighttypeenum",NULL ) -, SchemaEntry("ifcramptypeenum",NULL ) -, SchemaEntry("ifcrecurrencetypeenum",NULL ) -, SchemaEntry("ifcreflectancemethodenum",NULL ) -, SchemaEntry("ifcreinforcingbarroleenum",NULL ) -, SchemaEntry("ifcreinforcingbarsurfaceenum",NULL ) -, SchemaEntry("ifcreinforcingbartypeenum",NULL ) -, SchemaEntry("ifcreinforcingmeshtypeenum",NULL ) -, SchemaEntry("ifcroleenum",NULL ) -, SchemaEntry("ifcrooftypeenum",NULL ) -, SchemaEntry("ifcsiprefix",NULL ) -, SchemaEntry("ifcsiunitname",NULL ) -, SchemaEntry("ifcsanitaryterminaltypeenum",NULL ) -, SchemaEntry("ifcsectiontypeenum",NULL ) -, SchemaEntry("ifcsensortypeenum",NULL ) -, SchemaEntry("ifcsequenceenum",NULL ) -, SchemaEntry("ifcshadingdevicetypeenum",NULL ) -, SchemaEntry("ifcsimplepropertytemplatetypeenum",NULL ) -, SchemaEntry("ifcslabtypeenum",NULL ) -, SchemaEntry("ifcsolardevicetypeenum",NULL ) -, SchemaEntry("ifcspaceheatertypeenum",NULL ) -, SchemaEntry("ifcspacetypeenum",NULL ) -, SchemaEntry("ifcspatialzonetypeenum",NULL ) -, SchemaEntry("ifcstackterminaltypeenum",NULL ) -, SchemaEntry("ifcstairflighttypeenum",NULL ) -, SchemaEntry("ifcstairtypeenum",NULL ) -, SchemaEntry("ifcstateenum",NULL ) -, SchemaEntry("ifcstructuralcurveactivitytypeenum",NULL ) -, SchemaEntry("ifcstructuralcurvemembertypeenum",NULL ) -, SchemaEntry("ifcstructuralsurfaceactivitytypeenum",NULL ) -, SchemaEntry("ifcstructuralsurfacemembertypeenum",NULL ) -, SchemaEntry("ifcsubcontractresourcetypeenum",NULL ) -, SchemaEntry("ifcsurfacefeaturetypeenum",NULL ) -, SchemaEntry("ifcsurfaceside",NULL ) -, SchemaEntry("ifcswitchingdevicetypeenum",NULL ) -, SchemaEntry("ifcsystemfurnitureelementtypeenum",NULL ) -, SchemaEntry("ifctanktypeenum",NULL ) -, SchemaEntry("ifctaskdurationenum",NULL ) -, SchemaEntry("ifctasktypeenum",NULL ) -, SchemaEntry("ifctendonanchortypeenum",NULL ) -, SchemaEntry("ifctendontypeenum",NULL ) -, SchemaEntry("ifctextpath",NULL ) -, SchemaEntry("ifctimeseriesdatatypeenum",NULL ) -, SchemaEntry("ifctransformertypeenum",NULL ) -, SchemaEntry("ifctransitioncode",NULL ) -, SchemaEntry("ifctransportelementtypeenum",NULL ) -, SchemaEntry("ifctrimmingpreference",NULL ) -, SchemaEntry("ifctubebundletypeenum",NULL ) -, SchemaEntry("ifcunitenum",NULL ) -, SchemaEntry("ifcunitarycontrolelementtypeenum",NULL ) -, SchemaEntry("ifcunitaryequipmenttypeenum",NULL ) -, SchemaEntry("ifcvalvetypeenum",NULL ) -, SchemaEntry("ifcvibrationisolatortypeenum",NULL ) -, SchemaEntry("ifcvoidingfeaturetypeenum",NULL ) -, SchemaEntry("ifcwalltypeenum",NULL ) -, SchemaEntry("ifcwasteterminaltypeenum",NULL ) -, SchemaEntry("ifcwindowpaneloperationenum",NULL ) -, SchemaEntry("ifcwindowpanelpositionenum",NULL ) -, SchemaEntry("ifcwindowstyleconstructionenum",NULL ) -, SchemaEntry("ifcwindowstyleoperationenum",NULL ) -, SchemaEntry("ifcwindowtypeenum",NULL ) -, SchemaEntry("ifcwindowtypepartitioningenum",NULL ) -, SchemaEntry("ifcworkcalendartypeenum",NULL ) -, SchemaEntry("ifcworkplantypeenum",NULL ) -, SchemaEntry("ifcworkscheduletypeenum",NULL ) -, SchemaEntry("ifcactorselect",NULL ) -, SchemaEntry("ifcappliedvalueselect",NULL ) -, SchemaEntry("ifcaxis2placement",NULL ) -, SchemaEntry("ifcbendingparameterselect",NULL ) -, SchemaEntry("ifcbooleanoperand",NULL ) -, SchemaEntry("ifcclassificationreferenceselect",NULL ) -, SchemaEntry("ifcclassificationselect",NULL ) -, SchemaEntry("ifccolour",NULL ) -, SchemaEntry("ifccolourorfactor",NULL ) -, SchemaEntry("ifccoordinatereferencesystemselect",NULL ) -, SchemaEntry("ifccsgselect",NULL ) -, SchemaEntry("ifccurvefontorscaledcurvefontselect",NULL ) -, SchemaEntry("ifccurveonsurface",NULL ) -, SchemaEntry("ifccurveoredgecurve",NULL ) -, SchemaEntry("ifccurvestylefontselect",NULL ) -, SchemaEntry("ifcdefinitionselect",NULL ) -, SchemaEntry("ifcderivedmeasurevalue",NULL ) -, SchemaEntry("ifcdocumentselect",NULL ) -, SchemaEntry("ifcfillstyleselect",NULL ) -, SchemaEntry("ifcgeometricsetselect",NULL ) -, SchemaEntry("ifcgridplacementdirectionselect",NULL ) -, SchemaEntry("ifchatchlinedistanceselect",NULL ) -, SchemaEntry("ifclayereditem",NULL ) -, SchemaEntry("ifclibraryselect",NULL ) -, SchemaEntry("ifclightdistributiondatasourceselect",NULL ) -, SchemaEntry("ifcmaterialselect",NULL ) -, SchemaEntry("ifcmeasurevalue",NULL ) -, SchemaEntry("ifcmetricvalueselect",NULL ) -, SchemaEntry("ifcmodulusofrotationalsubgradereactionselect",NULL ) -, SchemaEntry("ifcmodulusofsubgradereactionselect",NULL ) -, SchemaEntry("ifcmodulusoftranslationalsubgradereactionselect",NULL ) -, SchemaEntry("ifcobjectreferenceselect",NULL ) -, SchemaEntry("ifcpointorvertexpoint",NULL ) -, SchemaEntry("ifcpresentationstyleselect",NULL ) -, SchemaEntry("ifcprocessselect",NULL ) -, SchemaEntry("ifcproductrepresentationselect",NULL ) -, SchemaEntry("ifcproductselect",NULL ) -, SchemaEntry("ifcpropertysetdefinitionselect",NULL ) -, SchemaEntry("ifcresourceobjectselect",NULL ) -, SchemaEntry("ifcresourceselect",NULL ) -, SchemaEntry("ifcrotationalstiffnessselect",NULL ) -, SchemaEntry("ifcsegmentindexselect",NULL ) -, SchemaEntry("ifcshell",NULL ) -, SchemaEntry("ifcsimplevalue",NULL ) -, SchemaEntry("ifcsizeselect",NULL ) -, SchemaEntry("ifcsolidorshell",NULL ) -, SchemaEntry("ifcspaceboundaryselect",NULL ) -, SchemaEntry("ifcspecularhighlightselect",NULL ) -, SchemaEntry("ifcstructuralactivityassignmentselect",NULL ) -, SchemaEntry("ifcstyleassignmentselect",NULL ) -, SchemaEntry("ifcsurfaceorfacesurface",NULL ) -, SchemaEntry("ifcsurfacestyleelementselect",NULL ) -, SchemaEntry("ifctextfontselect",NULL ) -, SchemaEntry("ifctimeorratioselect",NULL ) -, SchemaEntry("ifctranslationalstiffnessselect",NULL ) -, SchemaEntry("ifctrimmingselect",NULL ) -, SchemaEntry("ifcunit",NULL ) -, SchemaEntry("ifcvalue",NULL ) -, SchemaEntry("ifcvectorordirection",NULL ) -, SchemaEntry("ifcwarpingstiffnessselect",NULL ) -, SchemaEntry("ifcroot",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcobjectdefinition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcobject",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccontrol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcactionrequest",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcactor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcactorrole",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproduct",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributioncontrolelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcactuator",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctypeobject",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctypeproduct",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributioncontrolelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcactuatortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaddress",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrepresentationitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometricrepresentationitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsolidmodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmanifoldsolidbrep",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcadvancedbrep",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcadvancedbrepwithvoids",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctopologicalrepresentationitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacesurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcadvancedface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionflowelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowterminal",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcairterminal",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowcontroller",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcairterminalbox",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionflowelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowcontrollertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcairterminalboxtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcairterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcenergyconversiondevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcairtoairheatrecovery",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcenergyconversiondevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcairtoairheatrecoverytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcalarm",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcalarmtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcannotationfillarea",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcapplication",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcappliedvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcapproval",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcresourcelevelrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcapprovalrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcarbitraryclosedprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcarbitraryopenprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcarbitraryprofiledefwithvoids",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgroup",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcasset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcparameterizedprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcasymmetricishapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaudiovisualappliance",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaudiovisualappliancetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaxis1placement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaxis2placement2d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcaxis2placement3d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundedcurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbsplinecurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbsplinecurvewithknots",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundedsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbsplinesurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbsplinesurfacewithknots",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbeam",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbeamstandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbeamtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpresentationitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacetexture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcblobtexture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccsgprimitive3d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcblock",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboiler",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboilertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbooleanresult",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbooleanclippingresult",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundarycondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompositecurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompositecurveonsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundarycurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundaryedgecondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundaryfacecondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundarynodecondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundarynodeconditionwarping",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboundingbox",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifchalfspacesolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcboxedhalfspace",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspatialelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspatialstructureelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuilding",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementcomponent",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementpart",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementcomponenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementparttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementproxy",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingelementproxytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingstorey",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsystem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcbuildingsystem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcburner",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcburnertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccshapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowfitting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablecarrierfitting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowfittingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablecarrierfittingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowsegment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablecarriersegment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowsegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablecarriersegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablefitting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablefittingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablesegment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccablesegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpoint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesianpoint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesianpointlist",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesianpointlist2d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesianpointlist3d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator2d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator2dnonuniform",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator3d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccartesiantransformationoperator3dnonuniform",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccenterlineprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcchiller",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcchillertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcchimney",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcchimneytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconic",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccircle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccircleprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccirclehollowprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccivilelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccivilelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternalinformation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclassification",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternalreference",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclassificationreference",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectedfaceset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcclosedshell",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoil",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoiltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolourspecification",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolourrgb",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolourrgblist",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolumn",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolumnstandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccolumntype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccommunicationsappliance",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccommunicationsappliancetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyabstraction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproperty",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccomplexproperty",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertydefinition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertytemplatedefinition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertytemplate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccomplexpropertytemplate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompositecurvesegment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompositeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowmovingdevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompressor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowmovingdevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccompressortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccondenser",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccondensertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectiongeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectioncurvegeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectionpointgeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectionpointeccentricity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectionsurfacegeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconnectionvolumegeometry",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstraint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionequipmentresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctyperesource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionresourcetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionequipmentresourcetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionmaterialresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionmaterialresourcetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionproductresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconstructionproductresourcetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccontext",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcnamedunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccontextdependentunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccontroller",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccontrollertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconversionbasedunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcconversionbasedunitwithoffset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccooledbeam",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccooledbeamtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoolingtower",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoolingtowertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoordinateoperation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoordinatereferencesystem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccostitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccostschedule",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccostvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccovering",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccoveringtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccrewresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccrewresourcetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccsgsolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurrencyrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurtainwall",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurtainwalltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurveboundedplane",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurveboundedsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpresentationstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurvestyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurvestylefont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurvestylefontandscaling",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccurvestylefontpattern",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementarysurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifccylindricalsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdamper",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdampertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcderivedprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcderivedunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcderivedunitelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdimensionalexponents",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdirection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdiscreteaccessory",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdiscreteaccessorytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionchamberelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionchamberelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionsystem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributioncircuit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcport",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdistributionport",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdocumentinformation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdocumentinformationrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdocumentreference",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertysetdefinition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedpropertyset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoorliningproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoorpanelproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoorstandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoorstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdoortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefineditem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedcolour",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdraughtingpredefinedcolour",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedcurvefont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcdraughtingpredefinedcurvefont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcductfitting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcductfittingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcductsegment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcductsegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowtreatmentdevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcductsilencer",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowtreatmentdevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcductsilencertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcedge",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcedgecurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcloop",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcedgeloop",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricappliance",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricappliancetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricdistributionboard",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricdistributionboardtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowstoragedevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricflowstoragedevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowstoragedevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricflowstoragedevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricgenerator",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricgeneratortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricmotor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectricmotortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectrictimecontrol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelectrictimecontroltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementassembly",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementassemblytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantityset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcelementquantity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcellipse",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcellipseprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcengine",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcenginetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcevaporativecooler",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcevaporativecoolertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcevaporator",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcevaporatortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprocess",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcevent",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcschedulingtime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifceventtime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctypeprocess",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifceventtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcextendedproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternalreferencerelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternalspatialstructureelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternalspatialelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternallydefinedhatchstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternallydefinedsurfacestyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcexternallydefinedtextfont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsweptareasolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcextrudedareasolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcextrudedareasolidtapered",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacebasedsurfacemodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacebound",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfaceouterbound",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacetedbrep",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfacetedbrepwithvoids",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralconnectioncondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfailureconnectioncondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfan",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfantype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfastener",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfastenertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfeatureelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfeatureelementaddition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfeatureelementsubtraction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfillareastyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfillareastylehatching",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfillareastyletiles",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfilter",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfiltertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfiresuppressionterminal",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfiresuppressionterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfixedreferencesweptareasolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowinstrument",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowinstrumenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowmeter",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcflowmetertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfooting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfootingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfurnishingelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfurnishingelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfurniture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcfurnituretype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeographicelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeographicelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometricset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometriccurveset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrepresentationcontext",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometricrepresentationcontext",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgeometricrepresentationsubcontext",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgrid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgridaxis",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcobjectplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcgridplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcheatexchanger",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcheatexchangertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifchumidifier",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifchumidifiertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcishapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcimagetexture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcindexedcolourmap",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcindexedpolycurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctessellateditem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcindexedpolygonalface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcindexedpolygonalfacewithvoids",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctexturecoordinate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcindexedtexturemap",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcindexedtriangletexturemap",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcinterceptor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcinterceptortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacecurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcintersectioncurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcinventory",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctimeseries",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcirregulartimeseries",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcirregulartimeseriesvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcjunctionbox",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcjunctionboxtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclshapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclaborresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclaborresourcetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclagtime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclamp",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclamptype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclibraryinformation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclibraryreference",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightdistributiondata",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightfixture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightfixturetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightintensitydistribution",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourceambient",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourcedirectional",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourcegoniometric",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourcepositional",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclightsourcespot",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcline",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifclocalplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmapconversion",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmappeditem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialdefinition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterial",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialclassificationrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialconstituent",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialconstituentset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproductrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialdefinitionrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmateriallayer",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmateriallayerset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialusagedefinition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmateriallayersetusage",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmateriallayerwithoffsets",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmateriallist",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialprofile",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialprofileset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialprofilesetusage",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialprofilesetusagetapering",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialprofilewithoffsets",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmaterialrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmeasurewithunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmechanicalfastener",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmechanicalfastenertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmedicaldevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmedicaldevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmemberstandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmembertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmetric",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmirroredprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmonetaryunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmotorconnection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcmotorconnectiontype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcobjective",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcoccupant",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcoffsetcurve2d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcoffsetcurve3d",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcopenshell",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcopeningelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcopeningstandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcorganization",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcorganizationrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcorientededge",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcouterboundarycurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcoutlet",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcoutlettype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcownerhistory",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpath",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpcurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcperformancehistory",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpermeablecoveringproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpermit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcperson",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpersonandorganization",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcphysicalquantity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcphysicalcomplexquantity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcphysicalsimplequantity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpile",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpiletype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpipefitting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpipefittingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpipesegment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpipesegmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpixeltexture",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplanarextent",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplanarbox",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplane",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplatestandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcplatetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpointoncurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpointonsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpolyloop",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpolygonalboundedhalfspace",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctessellatedfaceset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpolygonalfaceset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpolyline",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpostaladdress",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpredefinedtextfont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpresentationlayerassignment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpresentationlayerwithstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpresentationstyleassignment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprocedure",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproceduretype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproductdefinitionshape",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprofileproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproject",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprojectlibrary",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprojectorder",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprojectedcrs",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprojectionelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsimpleproperty",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyboundedvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertydependencyrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyenumeratedvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyenumeration",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertylistvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyreferencevalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertyset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertysettemplate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertysinglevalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpropertytablevalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprotectivedevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprotectivedevicetrippingunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprotectivedevicetrippingunittype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcprotectivedevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcproxy",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpump",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcpumptype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantityarea",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantitycount",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantitylength",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantitytime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantityvolume",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcquantityweight",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrailing",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrailingtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcramp",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrampflight",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrampflighttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcramptype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrationalbsplinecurvewithknots",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrationalbsplinesurfacewithknots",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrectangleprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrectanglehollowprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrectangularpyramid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrectangulartrimmedsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrecurrencepattern",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreference",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcregulartimeseries",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcementbarproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcementdefinitionproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcingelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcingbar",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcingelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcingbartype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcingmesh",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreinforcingmeshtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldecomposes",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelaggregates",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassigns",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstoactor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstocontrol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstogroup",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstogroupbyfactor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstoprocess",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstoproduct",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassignstoresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociates",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesapproval",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesclassification",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesconstraint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesdocument",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociateslibrary",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelassociatesmaterial",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnects",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectselements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectspathelements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectsporttoelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectsports",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectsstructuralactivity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectsstructuralmember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectswitheccentricity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelconnectswithrealizingelements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelcontainedinspatialstructure",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelcoversbldgelements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelcoversspaces",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldeclares",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldefines",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldefinesbyobject",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldefinesbyproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldefinesbytemplate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreldefinesbytype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelfillselement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelflowcontrolelements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelinterfereselements",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelnests",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelprojectselement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelreferencedinspatialstructure",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelsequence",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelservicesbuildings",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelspaceboundary",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelspaceboundary1stlevel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelspaceboundary2ndlevel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrelvoidselement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcreparametrisedcompositecurvesegment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrepresentationmap",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcresourceapprovalrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcresourceconstraintrelationship",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcresourcetime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrevolvedareasolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrevolvedareasolidtapered",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrightcircularcone",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrightcircularcylinder",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcroof",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcrooftype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcroundedrectangleprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsiunit",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsanitaryterminal",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsanitaryterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcseamcurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsectionproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsectionreinforcementproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsectionedspine",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsensor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsensortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshadingdevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshadingdevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshapeaspect",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshapemodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshaperepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcshellbasedsurfacemodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsimplepropertytemplate",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsite",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcslab",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcslabelementedcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcslabstandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcslabtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcslippageconnectioncondition",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsolardevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsolardevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspace",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspaceheater",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspaceheatertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspatialelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspatialstructureelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspacetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspatialzone",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcspatialzonetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsphere",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsphericalsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstackterminal",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstackterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstair",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstairflight",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstairflighttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstairtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralactivity",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralanalysismodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralitem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralconnection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralcurveaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralcurveconnection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralmember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralcurvemember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralcurvemembervarying",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralreaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralcurvereaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructurallinearaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralload",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadgroup",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadconfiguration",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadorresult",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadstatic",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadlinearforce",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadplanarforce",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadsingledisplacement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadsingledisplacementdistortion",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadsingleforce",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadsingleforcewarping",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralloadtemperature",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralsurfaceaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralplanaraction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralpointaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralpointconnection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralpointreaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralresultgroup",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralsurfaceconnection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralsurfacemember",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralsurfacemembervarying",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstructuralsurfacereaction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstylemodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstyleditem",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcstyledrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsubcontractresource",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsubcontractresourcetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsubedge",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacecurvesweptareasolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacefeature",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsweptsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfaceoflinearextrusion",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfaceofrevolution",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacereinforcementarea",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestylelighting",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestylerefraction",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestyleshading",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestylerendering",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsurfacestylewithtextures",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsweptdisksolid",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsweptdisksolidpolygonal",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcswitchingdevice",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcswitchingdevicetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsystemfurnitureelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcsystemfurnitureelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctshapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctable",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctablecolumn",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctablerow",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctank",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctanktype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctask",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctasktime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctasktimerecurring",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctasktype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctelecomaddress",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctendon",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctendonanchor",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctendonanchortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctendontype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextliteral",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextliteralwithextent",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextstylefontmodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextstylefordefinedfont",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctextstyletextmodel",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctexturecoordinategenerator",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctexturemap",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctexturevertex",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctexturevertexlist",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctimeperiod",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctimeseriesvalue",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctopologyrepresentation",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctoroidalsurface",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctransformer",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctransformertype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctransportelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctransportelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctrapeziumprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctriangulatedfaceset",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctrimmedcurve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctubebundle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifctubebundletype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcushapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcunitassignment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcunitarycontrolelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcunitarycontrolelementtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcunitaryequipment",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcunitaryequipmenttype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvalve",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvalvetype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvector",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvertex",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvertexloop",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvertexpoint",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvibrationisolator",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvibrationisolatortype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvirtualelement",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvirtualgridintersection",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcvoidingfeature",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwall",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwallelementedcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwallstandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwalltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwasteterminal",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwasteterminaltype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindow",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindowliningproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindowpanelproperties",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindowstandardcase",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindowstyle",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcwindowtype",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcworkcalendar",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcworkcontrol",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcworkplan",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcworkschedule",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifcworktime",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifczshapeprofiledef",&STEP::ObjectHelper::Construct ) -, SchemaEntry("ifczone",&STEP::ObjectHelper::Construct ) - - }; -} - -// ----------------------------------------------------------------------------------------------------------- -void IFC::GetSchema(EXPRESS::ConversionSchema& out) -{ - out = EXPRESS::ConversionSchema(schema_raw); -} - -namespace STEP { - -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const STEP::DB& db, const LIST& params, NotImplemented* in) -{ - return 0; -} - - - -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRoot* in) -{ - size_t base = 0; - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRoot"); } do { // convert the 'GlobalId' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->GlobalId, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcRoot to be a `IfcGloballyUniqueId`")); } - } while(0); - do { // convert the 'OwnerHistory' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->OwnerHistory, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcRoot to be a `IfcOwnerHistory`")); } - } while(0); - do { // convert the 'Name' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcRoot to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Description' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Description, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcRoot to be a `IfcText`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcObjectDefinition* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcObjectDefinition"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcObject* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcObject"); } do { // convert the 'ObjectType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ObjectType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcObject to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcControl* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcActionRequest* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcActor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProduct* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 7) { throw STEP::TypeError("expected 7 arguments to IfcProduct"); } do { // convert the 'ObjectPlacement' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ObjectPlacement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcProduct to be a `IfcObjectPlacement`")); } - } while(0); - do { // convert the 'Representation' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Representation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcProduct to be a `IfcProductRepresentation`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcElement"); } do { // convert the 'Tag' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Tag, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcElement to be a `IfcIdentifier`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionControlElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcActuator* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTypeObject* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTypeProduct* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionControlElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcActuatorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRepresentationItem* in) -{ - size_t base = 0; - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricRepresentationItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSolidModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcManifoldSolidBrep* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcManifoldSolidBrep"); } do { // convert the 'Outer' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Outer, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcManifoldSolidBrep to be a `IfcClosedShell`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAdvancedBrep* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAdvancedBrepWithVoids* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTopologicalRepresentationItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcFace"); } do { // convert the 'Bounds' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Bounds, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcFace to be a `SET [1:?] OF IfcFaceBound`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFaceSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAdvancedFace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionFlowElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowTerminal* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAirTerminal* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowController* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAirTerminalBox* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionFlowElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowControllerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAirTerminalBoxType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAirTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEnergyConversionDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAirToAirHeatRecovery* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEnergyConversionDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAirToAirHeatRecoveryType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAlarm* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAlarmType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 7) { throw STEP::TypeError("expected 7 arguments to IfcAnnotation"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAnnotationFillArea* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProfileDef* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcProfileDef"); } do { // convert the 'ProfileType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->ProfileType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProfileDef to be a `IfcProfileTypeEnum`")); } - } while(0); - do { // convert the 'ProfileName' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ProfileName, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProfileDef to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcArbitraryClosedProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcArbitraryClosedProfileDef"); } do { // convert the 'OuterCurve' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->OuterCurve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcArbitraryClosedProfileDef to be a `IfcCurve`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcArbitraryOpenProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcArbitraryOpenProfileDef"); } do { // convert the 'Curve' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Curve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcArbitraryOpenProfileDef to be a `IfcBoundedCurve`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcArbitraryProfileDefWithVoids* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcArbitraryProfileDefWithVoids"); } do { // convert the 'InnerCurves' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->InnerCurves, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcArbitraryProfileDefWithVoids to be a `SET [1:?] OF IfcCurve`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGroup* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAsset* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcParameterizedProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcParameterizedProfileDef"); } do { // convert the 'Position' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcParameterizedProfileDef to be a `IfcAxis2Placement2D`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAsymmetricIShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAudioVisualAppliance* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAudioVisualApplianceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlacement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPlacement"); } do { // convert the 'Location' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Location, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPlacement to be a `IfcCartesianPoint`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAxis1Placement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcAxis1Placement"); } do { // convert the 'Axis' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcAxis1Placement to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAxis2Placement2D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcAxis2Placement2D"); } do { // convert the 'RefDirection' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefDirection, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcAxis2Placement2D to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcAxis2Placement3D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcAxis2Placement3D"); } do { // convert the 'Axis' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcAxis2Placement3D to be a `IfcDirection`")); } - } while(0); - do { // convert the 'RefDirection' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefDirection, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcAxis2Placement3D to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoundedCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBSplineCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcBSplineCurve"); } do { // convert the 'Degree' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Degree, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcBSplineCurve to be a `IfcInteger`")); } - } while(0); - do { // convert the 'ControlPointsList' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->ControlPointsList, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcBSplineCurve to be a `LIST [2:?] OF IfcCartesianPoint`")); } - } while(0); - do { // convert the 'CurveForm' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->CurveForm, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcBSplineCurve to be a `IfcBSplineCurveForm`")); } - } while(0); - do { // convert the 'ClosedCurve' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - try { GenericConvert( in->ClosedCurve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcBSplineCurve to be a `IfcLogical`")); } - } while(0); - do { // convert the 'SelfIntersect' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[4]=true; break; } - try { GenericConvert( in->SelfIntersect, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcBSplineCurve to be a `IfcLogical`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBSplineCurveWithKnots* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoundedSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBSplineSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBSplineSurfaceWithKnots* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcBuildingElement"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBeam* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBeamStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBeamType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPresentationItem* in) -{ - size_t base = 0; - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCsgPrimitive3D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBlock* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoiler* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoilerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBooleanResult* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcBooleanResult"); } do { // convert the 'Operator' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Operator, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcBooleanResult to be a `IfcBooleanOperator`")); } - } while(0); - do { // convert the 'FirstOperand' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->FirstOperand, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcBooleanResult to be a `IfcBooleanOperand`")); } - } while(0); - do { // convert the 'SecondOperand' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->SecondOperand, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcBooleanResult to be a `IfcBooleanOperand`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBooleanClippingResult* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcBooleanClippingResult"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompositeCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcCompositeCurve"); } do { // convert the 'Segments' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Segments, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcCompositeCurve to be a `LIST [1:?] OF IfcCompositeCurveSegment`")); } - } while(0); - do { // convert the 'SelfIntersect' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->SelfIntersect, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcCompositeCurve to be a `IfcLogical`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompositeCurveOnSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoundaryCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoundingBox* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcBoundingBox"); } do { // convert the 'Corner' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Corner, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcBoundingBox to be a `IfcCartesianPoint`")); } - } while(0); - do { // convert the 'XDim' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->XDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcBoundingBox to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'YDim' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->YDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcBoundingBox to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'ZDim' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->ZDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcBoundingBox to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcHalfSpaceSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcHalfSpaceSolid"); } do { // convert the 'BaseSurface' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->BaseSurface, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcHalfSpaceSolid to be a `IfcSurface`")); } - } while(0); - do { // convert the 'AgreementFlag' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->AgreementFlag, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcHalfSpaceSolid to be a `IfcBoolean`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBoxedHalfSpace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpatialElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcSpatialElement"); } do { // convert the 'LongName' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->LongName, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcSpatialElement to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpatialStructureElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 9) { throw STEP::TypeError("expected 9 arguments to IfcSpatialStructureElement"); } do { // convert the 'CompositionType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->CompositionType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcSpatialStructureElement to be a `IfcElementCompositionEnum`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuilding* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 12) { throw STEP::TypeError("expected 12 arguments to IfcBuilding"); } do { // convert the 'ElevationOfRefHeight' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ElevationOfRefHeight, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to IfcBuilding to be a `IfcLengthMeasure`")); } - } while(0); - do { // convert the 'ElevationOfTerrain' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ElevationOfTerrain, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 10 to IfcBuilding to be a `IfcLengthMeasure`")); } - } while(0); - do { // convert the 'BuildingAddress' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->BuildingAddress, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 11 to IfcBuilding to be a `IfcPostalAddress`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementComponent* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementPart* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementComponentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementPartType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementProxy* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingElementProxyType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingStorey* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSystem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBuildingSystem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBurner* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcBurnerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowFitting* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableCarrierFitting* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowFittingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableCarrierFittingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowSegment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableCarrierSegment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableCarrierSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableFitting* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableFittingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableSegment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCableSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPoint* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianPoint* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcCartesianPoint"); } do { // convert the 'Coordinates' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Coordinates, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcCartesianPoint to be a `LIST [1:3] OF IfcLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianPointList* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianPointList2D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianPointList3D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcCartesianTransformationOperator"); } do { // convert the 'Axis1' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis1, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcCartesianTransformationOperator to be a `IfcDirection`")); } - } while(0); - do { // convert the 'Axis2' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis2, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcCartesianTransformationOperator to be a `IfcDirection`")); } - } while(0); - do { // convert the 'LocalOrigin' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->LocalOrigin, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcCartesianTransformationOperator to be a `IfcCartesianPoint`")); } - } while(0); - do { // convert the 'Scale' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Scale, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcCartesianTransformationOperator to be a `IfcReal`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator2D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator2DnonUniform* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator3D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcCartesianTransformationOperator3D"); } do { // convert the 'Axis3' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Axis3, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcCartesianTransformationOperator3D to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCartesianTransformationOperator3DnonUniform* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 7) { throw STEP::TypeError("expected 7 arguments to IfcCartesianTransformationOperator3DnonUniform"); } do { // convert the 'Scale2' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Scale2, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcCartesianTransformationOperator3DnonUniform to be a `IfcReal`")); } - } while(0); - do { // convert the 'Scale3' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Scale3, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcCartesianTransformationOperator3DnonUniform to be a `IfcReal`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCenterLineProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcChiller* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcChillerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcChimney* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcChimneyType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConic* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcConic"); } do { // convert the 'Position' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcConic to be a `IfcAxis2Placement`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCircle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcCircle"); } do { // convert the 'Radius' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Radius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcCircle to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCircleProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcCircleProfileDef"); } do { // convert the 'Radius' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Radius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcCircleProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCircleHollowProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcCircleHollowProfileDef"); } do { // convert the 'WallThickness' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->WallThickness, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcCircleHollowProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCivilElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCivilElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConnectedFaceSet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcConnectedFaceSet"); } do { // convert the 'CfsFaces' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->CfsFaces, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcConnectedFaceSet to be a `SET [1:?] OF IfcFace`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcClosedShell* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcClosedShell"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCoil* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCoilType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcColourSpecification* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcColourSpecification"); } do { // convert the 'Name' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcColourSpecification to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcColourRgb* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcColourRgb"); } do { // convert the 'Red' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Red, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcColourRgb to be a `IfcNormalisedRatioMeasure`")); } - } while(0); - do { // convert the 'Green' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Green, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcColourRgb to be a `IfcNormalisedRatioMeasure`")); } - } while(0); - do { // convert the 'Blue' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Blue, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcColourRgb to be a `IfcNormalisedRatioMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcColumn* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcColumnStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcColumnType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCommunicationsAppliance* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCommunicationsApplianceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyAbstraction* in) -{ - size_t base = 0; - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProperty* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcProperty"); } do { // convert the 'Name' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProperty to be a `IfcIdentifier`")); } - } while(0); - do { // convert the 'Description' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Description, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProperty to be a `IfcText`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcComplexProperty* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcComplexProperty"); } do { // convert the 'UsageName' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->UsageName, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcComplexProperty to be a `IfcIdentifier`")); } - } while(0); - do { // convert the 'HasProperties' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->HasProperties, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcComplexProperty to be a `SET [1:?] OF IfcProperty`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyDefinition* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPropertyDefinition"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompositeCurveSegment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcCompositeCurveSegment"); } do { // convert the 'Transition' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Transition, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcCompositeCurveSegment to be a `IfcTransitionCode`")); } - } while(0); - do { // convert the 'SameSense' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->SameSense, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcCompositeCurveSegment to be a `IfcBoolean`")); } - } while(0); - do { // convert the 'ParentCurve' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->ParentCurve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcCompositeCurveSegment to be a `IfcCurve`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompositeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowMovingDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompressor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowMovingDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCompressorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCondenser* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCondenserType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionEquipmentResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTypeResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionResourceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionEquipmentResourceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionMaterialResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionMaterialResourceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionProductResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConstructionProductResourceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcContext* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 9) { throw STEP::TypeError("expected 9 arguments to IfcContext"); } do { // convert the 'ObjectType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ObjectType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcContext to be a `IfcLabel`")); } - } while(0); - do { // convert the 'LongName' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->LongName, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcContext to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Phase' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Phase, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcContext to be a `IfcLabel`")); } - } while(0); - do { // convert the 'RepresentationContexts' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RepresentationContexts, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcContext to be a `SET [1:?] OF IfcRepresentationContext`")); } - } while(0); - do { // convert the 'UnitsInContext' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[4]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->UnitsInContext, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcContext to be a `IfcUnitAssignment`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcNamedUnit* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcNamedUnit"); } do { // convert the 'Dimensions' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Dimensions, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcNamedUnit to be a `IfcDimensionalExponents`")); } - } while(0); - do { // convert the 'UnitType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->UnitType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcNamedUnit to be a `IfcUnitEnum`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcContextDependentUnit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcController* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcControllerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConversionBasedUnit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcConversionBasedUnit"); } do { // convert the 'Name' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcConversionBasedUnit to be a `IfcLabel`")); } - } while(0); - do { // convert the 'ConversionFactor' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->ConversionFactor, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcConversionBasedUnit to be a `IfcMeasureWithUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcConversionBasedUnitWithOffset* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCooledBeam* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCooledBeamType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCoolingTower* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCoolingTowerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCostItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCostSchedule* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCovering* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCoveringType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCrewResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCrewResourceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCsgSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCurtainWall* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCurtainWallType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCurveBoundedPlane* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCurveBoundedSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPresentationStyle* in) -{ - size_t base = 0; - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPresentationStyle"); } do { // convert the 'Name' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPresentationStyle to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementarySurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcElementarySurface"); } do { // convert the 'Position' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcElementarySurface to be a `IfcAxis2Placement3D`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcCylindricalSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDamper* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDamperType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDerivedProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDirection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcDirection"); } do { // convert the 'DirectionRatios' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->DirectionRatios, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcDirection to be a `LIST [2:3] OF IfcReal`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDiscreteAccessory* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDiscreteAccessoryType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionChamberElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionChamberElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionSystem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionCircuit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPort* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDistributionPort* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDoor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 13) { throw STEP::TypeError("expected 13 arguments to IfcDoor"); } do { // convert the 'OverallHeight' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->OverallHeight, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcDoor to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'OverallWidth' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->OverallWidth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to IfcDoor to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'PredefinedType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->PredefinedType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 10 to IfcDoor to be a `IfcDoorTypeEnum`")); } - } while(0); - do { // convert the 'OperationType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->OperationType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 11 to IfcDoor to be a `IfcDoorTypeOperationEnum`")); } - } while(0); - do { // convert the 'UserDefinedOperationType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[4]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->UserDefinedOperationType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 12 to IfcDoor to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertySetDefinition* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPropertySetDefinition"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDoorStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDoorStyle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDoorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDuctFitting* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDuctFittingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDuctSegment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDuctSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowTreatmentDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDuctSilencer* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowTreatmentDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcDuctSilencerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEdge* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEdgeCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLoop* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEdgeLoop* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricAppliance* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricApplianceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricDistributionBoard* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricDistributionBoardType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowStorageDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricFlowStorageDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowStorageDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricFlowStorageDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricGenerator* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricGeneratorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricMotor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricMotorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricTimeControl* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElectricTimeControlType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementAssembly* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementAssemblyType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcQuantitySet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcQuantitySet"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcElementQuantity* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcElementQuantity"); } do { // convert the 'MethodOfMeasurement' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->MethodOfMeasurement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcElementQuantity to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Quantities' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Quantities, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcElementQuantity to be a `SET [1:?] OF IfcPhysicalQuantity`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEllipse* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcEllipse"); } do { // convert the 'SemiAxis1' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->SemiAxis1, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcEllipse to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'SemiAxis2' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->SemiAxis2, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcEllipse to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEllipseProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEngine* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEngineType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEvaporativeCooler* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEvaporativeCoolerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEvaporator* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEvaporatorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProcess* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEvent* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTypeProcess* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcEventType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcExternalSpatialStructureElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcExternalSpatialElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSweptAreaSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcSweptAreaSolid"); } do { // convert the 'SweptArea' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->SweptArea, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSweptAreaSolid to be a `IfcProfileDef`")); } - } while(0); - do { // convert the 'Position' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSweptAreaSolid to be a `IfcAxis2Placement3D`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcExtrudedAreaSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcExtrudedAreaSolid"); } do { // convert the 'ExtrudedDirection' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->ExtrudedDirection, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcExtrudedAreaSolid to be a `IfcDirection`")); } - } while(0); - do { // convert the 'Depth' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->Depth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcExtrudedAreaSolid to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcExtrudedAreaSolidTapered* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFaceBasedSurfaceModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcFaceBasedSurfaceModel"); } do { // convert the 'FbsmFaces' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->FbsmFaces, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcFaceBasedSurfaceModel to be a `SET [1:?] OF IfcConnectedFaceSet`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFaceBound* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcFaceBound"); } do { // convert the 'Bound' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Bound, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcFaceBound to be a `IfcLoop`")); } - } while(0); - do { // convert the 'Orientation' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->Orientation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcFaceBound to be a `IfcBoolean`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFaceOuterBound* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcFaceOuterBound"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFacetedBrep* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFacetedBrepWithVoids* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFan* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFanType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFastener* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFastenerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFeatureElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcFeatureElement"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFeatureElementAddition* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFeatureElementSubtraction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 8) { throw STEP::TypeError("expected 8 arguments to IfcFeatureElementSubtraction"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFillAreaStyleHatching* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFillAreaStyleTiles* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFilter* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFilterType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFireSuppressionTerminal* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFireSuppressionTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFixedReferenceSweptAreaSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowInstrument* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowInstrumentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowMeter* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFlowMeterType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFooting* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFootingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFurnishingElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFurnishingElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFurniture* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcFurnitureType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeographicElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeographicElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricSet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricCurveSet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRepresentationContext* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcRepresentationContext"); } do { // convert the 'ContextIdentifier' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ContextIdentifier, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcRepresentationContext to be a `IfcLabel`")); } - } while(0); - do { // convert the 'ContextType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ContextType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcRepresentationContext to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricRepresentationContext* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcGeometricRepresentationContext"); } do { // convert the 'CoordinateSpaceDimension' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->CoordinateSpaceDimension, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcGeometricRepresentationContext to be a `IfcDimensionCount`")); } - } while(0); - do { // convert the 'Precision' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Precision, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcGeometricRepresentationContext to be a `IfcReal`")); } - } while(0); - do { // convert the 'WorldCoordinateSystem' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->WorldCoordinateSystem, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcGeometricRepresentationContext to be a `IfcAxis2Placement`")); } - } while(0); - do { // convert the 'TrueNorth' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->TrueNorth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcGeometricRepresentationContext to be a `IfcDirection`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGeometricRepresentationSubContext* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGrid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcObjectPlacement* in) -{ - size_t base = 0; - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcGridPlacement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcHeatExchanger* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcHeatExchangerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcHumidifier* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcHumidifierType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcIShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 10) { throw STEP::TypeError("expected 10 arguments to IfcIShapeProfileDef"); } do { // convert the 'OverallWidth' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->OverallWidth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcIShapeProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'OverallDepth' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->OverallDepth, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcIShapeProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'WebThickness' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->WebThickness, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcIShapeProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'FlangeThickness' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->FlangeThickness, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcIShapeProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'FilletRadius' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->FilletRadius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcIShapeProfileDef to be a `IfcNonNegativeLengthMeasure`")); } - } while(0); - do { // convert the 'FlangeEdgeRadius' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->FlangeEdgeRadius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcIShapeProfileDef to be a `IfcNonNegativeLengthMeasure`")); } - } while(0); - do { // convert the 'FlangeSlope' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->FlangeSlope, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to IfcIShapeProfileDef to be a `IfcPlaneAngleMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcIndexedPolyCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTessellatedItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcIndexedPolygonalFace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcIndexedPolygonalFaceWithVoids* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcInterceptor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcInterceptorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcIntersectionCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcInventory* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcJunctionBox* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcJunctionBoxType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLaborResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLaborResourceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLamp* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLampType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightFixture* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightFixtureType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourceAmbient* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourceDirectional* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourceGoniometric* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourcePositional* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLightSourceSpot* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLine* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcLine"); } do { // convert the 'Pnt' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Pnt, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcLine to be a `IfcCartesianPoint`")); } - } while(0); - do { // convert the 'Dir' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Dir, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcLine to be a `IfcVector`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcLocalPlacement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcLocalPlacement"); } do { // convert the 'PlacementRelTo' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->PlacementRelTo, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcLocalPlacement to be a `IfcObjectPlacement`")); } - } while(0); - do { // convert the 'RelativePlacement' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelativePlacement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcLocalPlacement to be a `IfcAxis2Placement`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMappedItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcMappedItem"); } do { // convert the 'MappingSource' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->MappingSource, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcMappedItem to be a `IfcRepresentationMap`")); } - } while(0); - do { // convert the 'MappingTarget' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->MappingTarget, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcMappedItem to be a `IfcCartesianTransformationOperator`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProductRepresentation* in) -{ - size_t base = 0; - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcProductRepresentation"); } do { // convert the 'Name' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProductRepresentation to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Description' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Description, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProductRepresentation to be a `IfcText`")); } - } while(0); - do { // convert the 'Representations' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - try { GenericConvert( in->Representations, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcProductRepresentation to be a `LIST [1:?] OF IfcRepresentation`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMaterialDefinitionRepresentation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMeasureWithUnit* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcMeasureWithUnit"); } do { // convert the 'ValueComponent' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->ValueComponent, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcMeasureWithUnit to be a `IfcValue`")); } - } while(0); - do { // convert the 'UnitComponent' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->UnitComponent, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcMeasureWithUnit to be a `IfcUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMechanicalFastener* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMechanicalFastenerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMedicalDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMedicalDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMember* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMemberStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMemberType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMirroredProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMotorConnection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcMotorConnectionType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOccupant* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOffsetCurve2D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOffsetCurve3D* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOpenShell* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOpeningElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 9) { throw STEP::TypeError("expected 9 arguments to IfcOpeningElement"); } do { // convert the 'PredefinedType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->PredefinedType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcOpeningElement to be a `IfcOpeningElementTypeEnum`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOpeningStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOrientedEdge* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOuterBoundaryCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOutlet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcOutletType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPath* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPcurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPerformanceHistory* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPermit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPile* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPileType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPipeFitting* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPipeFittingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPipeSegment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPipeSegmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlanarExtent* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlanarBox* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlane* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPlane"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlate* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlateStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPlateType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPointOnCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPointOnSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPolyLoop* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPolyLoop"); } do { // convert the 'Polygon' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Polygon, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPolyLoop to be a `LIST [3:?] OF IfcCartesianPoint`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPolygonalBoundedHalfSpace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPolygonalBoundedHalfSpace"); } do { // convert the 'Position' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Position, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcPolygonalBoundedHalfSpace to be a `IfcAxis2Placement3D`")); } - } while(0); - do { // convert the 'PolygonalBoundary' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->PolygonalBoundary, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcPolygonalBoundedHalfSpace to be a `IfcBoundedCurve`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTessellatedFaceSet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPolygonalFaceSet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPolyline* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPolyline"); } do { // convert the 'Points' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Points, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPolyline to be a `LIST [2:?] OF IfcCartesianPoint`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPresentationStyleAssignment* in) -{ - size_t base = 0; - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcPresentationStyleAssignment"); } do { // convert the 'Styles' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Styles, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcPresentationStyleAssignment to be a `SET [1:?] OF IfcPresentationStyleSelect`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProcedure* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProcedureType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProductDefinitionShape* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProject* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 9) { throw STEP::TypeError("expected 9 arguments to IfcProject"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProjectLibrary* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProjectOrder* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProjectionElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSimpleProperty* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcSimpleProperty"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyBoundedValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyEnumeratedValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyListValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPropertyListValue"); } do { // convert the 'ListValues' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ListValues, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcPropertyListValue to be a `LIST [1:?] OF IfcValue`")); } - } while(0); - do { // convert the 'Unit' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Unit, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcPropertyListValue to be a `IfcUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyReferenceValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertySet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcPropertySet"); } do { // convert the 'HasProperties' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->HasProperties, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcPropertySet to be a `SET [1:?] OF IfcProperty`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertySingleValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcPropertySingleValue"); } do { // convert the 'NominalValue' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->NominalValue, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcPropertySingleValue to be a `IfcValue`")); } - } while(0); - do { // convert the 'Unit' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Unit, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcPropertySingleValue to be a `IfcUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPropertyTableValue* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProtectiveDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProtectiveDeviceTrippingUnit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProtectiveDeviceTrippingUnitType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProtectiveDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcProxy* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPump* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcPumpType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRailing* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRailingType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRamp* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRampFlight* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRampFlightType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRampType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRationalBSplineCurveWithKnots* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRationalBSplineSurfaceWithKnots* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRectangleProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcRectangleProfileDef"); } do { // convert the 'XDim' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->XDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcRectangleProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'YDim' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->YDim, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRectangleProfileDef to be a `IfcPositiveLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRectangleHollowProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRectangularPyramid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRectangularTrimmedSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReinforcingElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReinforcingBar* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReinforcingElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReinforcingBarType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReinforcingMesh* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReinforcingMeshType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelationship* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRelationship"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelDecomposes* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRelDecomposes"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelAggregates* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelAggregates"); } do { // convert the 'RelatingObject' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatingObject, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelAggregates to be a `IfcObjectDefinition`")); } - } while(0); - do { // convert the 'RelatedObjects' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatedObjects, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelAggregates to be a `SET [1:?] OF IfcObjectDefinition`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelConnects* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRelConnects"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelContainedInSpatialStructure* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelContainedInSpatialStructure"); } do { // convert the 'RelatedElements' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatedElements, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelContainedInSpatialStructure to be a `SET [1:?] OF IfcProduct`")); } - } while(0); - do { // convert the 'RelatingStructure' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatingStructure, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelContainedInSpatialStructure to be a `IfcSpatialElement`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelDefines* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRelDefines"); } return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelDefinesByProperties* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelDefinesByProperties"); } do { // convert the 'RelatedObjects' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatedObjects, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelDefinesByProperties to be a `SET [1:?] OF IfcObjectDefinition`")); } - } while(0); - do { // convert the 'RelatingPropertyDefinition' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatingPropertyDefinition, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelDefinesByProperties to be a `IfcPropertySetDefinitionSelect`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelFillsElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelFillsElement"); } do { // convert the 'RelatingOpeningElement' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatingOpeningElement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelFillsElement to be a `IfcOpeningElement`")); } - } while(0); - do { // convert the 'RelatedBuildingElement' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatedBuildingElement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelFillsElement to be a `IfcElement`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRelVoidsElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to IfcRelVoidsElement"); } do { // convert the 'RelatingBuildingElement' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatingBuildingElement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcRelVoidsElement to be a `IfcElement`")); } - } while(0); - do { // convert the 'RelatedOpeningElement' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->RelatedOpeningElement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcRelVoidsElement to be a `IfcFeatureElementSubtraction`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcReparametrisedCompositeCurveSegment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRepresentation* in) -{ - size_t base = 0; - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRepresentation"); } do { // convert the 'ContextOfItems' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->ContextOfItems, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcRepresentation to be a `IfcRepresentationContext`")); } - } while(0); - do { // convert the 'RepresentationIdentifier' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RepresentationIdentifier, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcRepresentation to be a `IfcLabel`")); } - } while(0); - do { // convert the 'RepresentationType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RepresentationType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcRepresentation to be a `IfcLabel`")); } - } while(0); - do { // convert the 'Items' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - try { GenericConvert( in->Items, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcRepresentation to be a `SET [1:?] OF IfcRepresentationItem`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRepresentationMap* in) -{ - size_t base = 0; - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcRepresentationMap"); } do { // convert the 'MappingOrigin' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->MappingOrigin, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcRepresentationMap to be a `IfcAxis2Placement`")); } - } while(0); - do { // convert the 'MappedRepresentation' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->MappedRepresentation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcRepresentationMap to be a `IfcRepresentation`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRevolvedAreaSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcRevolvedAreaSolid"); } do { // convert the 'Axis' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Axis, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcRevolvedAreaSolid to be a `IfcAxis1Placement`")); } - } while(0); - do { // convert the 'Angle' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->Angle, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcRevolvedAreaSolid to be a `IfcPlaneAngleMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRevolvedAreaSolidTapered* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRightCircularCone* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRightCircularCylinder* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRoof* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRoofType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcRoundedRectangleProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSIUnit* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to IfcSIUnit"); } do { // convert the 'Prefix' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Prefix, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSIUnit to be a `IfcSIPrefix`")); } - } while(0); - do { // convert the 'Name' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcSIUnit to be a `IfcSIUnitName`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSanitaryTerminal* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSanitaryTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSeamCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSectionedSpine* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSensor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSensorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcShadingDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcShadingDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcShapeModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcShapeRepresentation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcShellBasedSurfaceModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcShellBasedSurfaceModel"); } do { // convert the 'SbsmBoundary' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->SbsmBoundary, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcShellBasedSurfaceModel to be a `SET [1:?] OF IfcShell`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSite* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 14) { throw STEP::TypeError("expected 14 arguments to IfcSite"); } do { // convert the 'RefLatitude' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefLatitude, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to IfcSite to be a `IfcCompoundPlaneAngleMeasure`")); } - } while(0); - do { // convert the 'RefLongitude' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefLongitude, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 10 to IfcSite to be a `IfcCompoundPlaneAngleMeasure`")); } - } while(0); - do { // convert the 'RefElevation' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->RefElevation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 11 to IfcSite to be a `IfcLengthMeasure`")); } - } while(0); - do { // convert the 'LandTitleNumber' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->LandTitleNumber, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 12 to IfcSite to be a `IfcLabel`")); } - } while(0); - do { // convert the 'SiteAddress' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->SiteAddress, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 13 to IfcSite to be a `IfcPostalAddress`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSlab* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSlabElementedCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSlabStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSlabType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSolarDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSolarDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpace* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 11) { throw STEP::TypeError("expected 11 arguments to IfcSpace"); } do { // convert the 'PredefinedType' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->PredefinedType, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to IfcSpace to be a `IfcSpaceTypeEnum`")); } - } while(0); - do { // convert the 'ElevationWithFlooring' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ElevationWithFlooring, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 10 to IfcSpace to be a `IfcLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpaceHeater* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpaceHeaterType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpatialElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpatialStructureElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpaceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpatialZone* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSpatialZoneType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSphere* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSphericalSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStackTerminal* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStackTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStair* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStairFlight* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStairFlightType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStairType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralActivity* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralAnalysisModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralConnection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralCurveAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralCurveConnection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralMember* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralCurveMember* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralCurveMemberVarying* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralReaction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralCurveReaction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralLinearAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralLoadGroup* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralLoadCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralSurfaceAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralPlanarAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralPointAction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralPointConnection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralPointReaction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralResultGroup* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralSurfaceConnection* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralSurfaceMember* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralSurfaceMemberVarying* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStructuralSurfaceReaction* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStyleModel* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStyledItem* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcStyledItem"); } do { // convert the 'Item' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Item, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcStyledItem to be a `IfcRepresentationItem`")); } - } while(0); - do { // convert the 'Styles' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Styles, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcStyledItem to be a `SET [1:?] OF IfcStyleAssignmentSelect`")); } - } while(0); - do { // convert the 'Name' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Name, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcStyledItem to be a `IfcLabel`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcStyledRepresentation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSubContractResource* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSubContractResourceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSubedge* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceCurveSweptAreaSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceFeature* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSweptSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceOfLinearExtrusion* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceOfRevolution* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceStyle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcSurfaceStyle"); } do { // convert the 'Side' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Side, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSurfaceStyle to be a `IfcSurfaceSide`")); } - } while(0); - do { // convert the 'Styles' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Styles, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSurfaceStyle to be a `SET [1:5] OF IfcSurfaceStyleElementSelect`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceStyleShading* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcSurfaceStyleShading"); } do { // convert the 'SurfaceColour' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->SurfaceColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSurfaceStyleShading to be a `IfcColourRgb`")); } - } while(0); - do { // convert the 'Transparency' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->Transparency, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSurfaceStyleShading to be a `IfcNormalisedRatioMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceStyleRendering* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 9) { throw STEP::TypeError("expected 9 arguments to IfcSurfaceStyleRendering"); } do { // convert the 'DiffuseColour' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->DiffuseColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'TransmissionColour' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->TransmissionColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'DiffuseTransmissionColour' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->DiffuseTransmissionColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'ReflectionColour' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->ReflectionColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'SpecularColour' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->SpecularColour, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to IfcSurfaceStyleRendering to be a `IfcColourOrFactor`")); } - } while(0); - do { // convert the 'SpecularHighlight' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->SpecularHighlight, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to IfcSurfaceStyleRendering to be a `IfcSpecularHighlightSelect`")); } - } while(0); - do { // convert the 'ReflectanceMethod' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->ReflectanceMethod, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to IfcSurfaceStyleRendering to be a `IfcReflectanceMethodEnum`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSurfaceStyleWithTextures* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcSurfaceStyleWithTextures"); } do { // convert the 'Textures' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Textures, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSurfaceStyleWithTextures to be a `LIST [1:?] OF IfcSurfaceTexture`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSweptDiskSolid* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcSweptDiskSolid"); } do { // convert the 'Directrix' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[0]=true; break; } - try { GenericConvert( in->Directrix, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSweptDiskSolid to be a `IfcCurve`")); } - } while(0); - do { // convert the 'Radius' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[1]=true; break; } - try { GenericConvert( in->Radius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSweptDiskSolid to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'InnerRadius' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[2]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->InnerRadius, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSweptDiskSolid to be a `IfcPositiveLengthMeasure`")); } - } while(0); - do { // convert the 'StartParam' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[3]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->StartParam, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcSweptDiskSolid to be a `IfcParameterValue`")); } - } while(0); - do { // convert the 'EndParam' argument - boost::shared_ptr arg = params[base++]; - if (dynamic_cast(&*arg)) { in->ObjectHelper::aux_is_derived[4]=true; break; } - if (dynamic_cast(&*arg)) break; - try { GenericConvert( in->EndParam, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcSweptDiskSolid to be a `IfcParameterValue`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSweptDiskSolidPolygonal* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSwitchingDevice* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSwitchingDeviceType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSystemFurnitureElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcSystemFurnitureElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTank* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTankType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTask* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTaskType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTendon* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTendonAnchor* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTendonAnchorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTendonType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTextLiteral* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTextLiteralWithExtent* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTopologyRepresentation* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcToroidalSurface* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTransformer* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTransformerType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTransportElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTransportElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTrapeziumProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTriangulatedFaceSet* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTrimmedCurve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcTrimmedCurve"); } do { // convert the 'BasisCurve' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->BasisCurve, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcTrimmedCurve to be a `IfcCurve`")); } - } while(0); - do { // convert the 'Trim1' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Trim1, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcTrimmedCurve to be a `SET [1:2] OF IfcTrimmingSelect`")); } - } while(0); - do { // convert the 'Trim2' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Trim2, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcTrimmedCurve to be a `SET [1:2] OF IfcTrimmingSelect`")); } - } while(0); - do { // convert the 'SenseAgreement' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->SenseAgreement, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcTrimmedCurve to be a `IfcBoolean`")); } - } while(0); - do { // convert the 'MasterRepresentation' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->MasterRepresentation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcTrimmedCurve to be a `IfcTrimmingPreference`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTubeBundle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcTubeBundleType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcUShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcUnitAssignment* in) -{ - size_t base = 0; - if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcUnitAssignment"); } do { // convert the 'Units' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Units, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcUnitAssignment to be a `SET [1:?] OF IfcUnit`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcUnitaryControlElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcUnitaryControlElementType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcUnitaryEquipment* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcUnitaryEquipmentType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcValve* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcValveType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVector* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); - if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcVector"); } do { // convert the 'Orientation' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Orientation, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcVector to be a `IfcDirection`")); } - } while(0); - do { // convert the 'Magnitude' argument - boost::shared_ptr arg = params[base++]; - try { GenericConvert( in->Magnitude, arg, db ); break; } - catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcVector to be a `IfcLengthMeasure`")); } - } while(0); - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVertex* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVertexLoop* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVertexPoint* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVibrationIsolator* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVibrationIsolatorType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVirtualElement* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcVoidingFeature* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWall* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWallElementedCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWallStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWallType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWasteTerminal* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWasteTerminalType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWindow* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWindowStandardCase* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWindowStyle* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWindowType* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWorkCalendar* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWorkControl* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWorkPlan* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcWorkSchedule* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcZShapeProfileDef* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} -// ----------------------------------------------------------------------------------------------------------- -template <> size_t GenericFill(const DB& db, const LIST& params, IfcZone* in) -{ - size_t base = GenericFill(db,params,static_cast(in)); -// this data structure is not used yet, so there is no code generated to fill its members - return base; -} - -} // ! STEP -} // ! Assimp - -#endif diff --git a/libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.h b/libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.h deleted file mode 100644 index abf0219..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCReaderGen_4.h +++ /dev/null @@ -1,5452 +0,0 @@ -/* -Open Asset Import Library (ASSIMP) ----------------------------------------------------------------------- - -Copyright (c) 2006-2020, ASSIMP Development Team -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the ASSIMP team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the ASSIMP Development Team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** MACHINE-GENERATED by scripts/ICFImporter/CppGenerator.py */ - -#ifndef INCLUDED_IFC_READER_GEN_H -#define INCLUDED_IFC_READER_GEN_H - -#include "STEPFile.h" - -namespace Assimp { -namespace IFC { -namespace Schema_4 { - - using namespace STEP; - using namespace STEP::EXPRESS; - - - struct NotImplemented : public ObjectHelper { - - }; - - - // ****************************************************************************** - // IFC Custom data types - // ****************************************************************************** - - - // C++ wrapper type for IfcStrippedOptional - typedef BOOLEAN IfcStrippedOptional; - // C++ wrapper type for IfcAbsorbedDoseMeasure - typedef REAL IfcAbsorbedDoseMeasure; - // C++ wrapper type for IfcAccelerationMeasure - typedef REAL IfcAccelerationMeasure; - // C++ wrapper type for IfcAmountOfSubstanceMeasure - typedef REAL IfcAmountOfSubstanceMeasure; - // C++ wrapper type for IfcAngularVelocityMeasure - typedef REAL IfcAngularVelocityMeasure; - // C++ wrapper type for IfcArcIndex - typedef ListOf< INTEGER, 3, 3 > IfcArcIndex; - // C++ wrapper type for IfcAreaDensityMeasure - typedef REAL IfcAreaDensityMeasure; - // C++ wrapper type for IfcAreaMeasure - typedef REAL IfcAreaMeasure; - // C++ wrapper type for IfcBoolean - typedef BOOLEAN IfcBoolean; - // C++ wrapper type for IfcBoxAlignment - typedef STRING IfcBoxAlignment; - // C++ wrapper type for IfcCardinalPointReference - typedef INTEGER IfcCardinalPointReference; - // C++ wrapper type for IfcCompoundPlaneAngleMeasure - typedef ListOf< INTEGER, 3, 4 > IfcCompoundPlaneAngleMeasure; - // C++ wrapper type for IfcContextDependentMeasure - typedef REAL IfcContextDependentMeasure; - // C++ wrapper type for IfcCountMeasure - typedef NUMBER IfcCountMeasure; - // C++ wrapper type for IfcCurvatureMeasure - typedef REAL IfcCurvatureMeasure; - // C++ wrapper type for IfcDate - typedef STRING IfcDate; - // C++ wrapper type for IfcDateTime - typedef STRING IfcDateTime; - // C++ wrapper type for IfcDayInMonthNumber - typedef INTEGER IfcDayInMonthNumber; - // C++ wrapper type for IfcDayInWeekNumber - typedef INTEGER IfcDayInWeekNumber; - // C++ wrapper type for IfcDescriptiveMeasure - typedef STRING IfcDescriptiveMeasure; - // C++ wrapper type for IfcDimensionCount - typedef INTEGER IfcDimensionCount; - // C++ wrapper type for IfcDoseEquivalentMeasure - typedef REAL IfcDoseEquivalentMeasure; - // C++ wrapper type for IfcDuration - typedef STRING IfcDuration; - // C++ wrapper type for IfcDynamicViscosityMeasure - typedef REAL IfcDynamicViscosityMeasure; - // C++ wrapper type for IfcElectricCapacitanceMeasure - typedef REAL IfcElectricCapacitanceMeasure; - // C++ wrapper type for IfcElectricChargeMeasure - typedef REAL IfcElectricChargeMeasure; - // C++ wrapper type for IfcElectricConductanceMeasure - typedef REAL IfcElectricConductanceMeasure; - // C++ wrapper type for IfcElectricCurrentMeasure - typedef REAL IfcElectricCurrentMeasure; - // C++ wrapper type for IfcElectricResistanceMeasure - typedef REAL IfcElectricResistanceMeasure; - // C++ wrapper type for IfcElectricVoltageMeasure - typedef REAL IfcElectricVoltageMeasure; - // C++ wrapper type for IfcEnergyMeasure - typedef REAL IfcEnergyMeasure; - // C++ wrapper type for IfcFontStyle - typedef STRING IfcFontStyle; - // C++ wrapper type for IfcFontVariant - typedef STRING IfcFontVariant; - // C++ wrapper type for IfcFontWeight - typedef STRING IfcFontWeight; - // C++ wrapper type for IfcForceMeasure - typedef REAL IfcForceMeasure; - // C++ wrapper type for IfcFrequencyMeasure - typedef REAL IfcFrequencyMeasure; - // C++ wrapper type for IfcGloballyUniqueId - typedef STRING IfcGloballyUniqueId; - // C++ wrapper type for IfcHeatFluxDensityMeasure - typedef REAL IfcHeatFluxDensityMeasure; - // C++ wrapper type for IfcHeatingValueMeasure - typedef REAL IfcHeatingValueMeasure; - // C++ wrapper type for IfcIdentifier - typedef STRING IfcIdentifier; - // C++ wrapper type for IfcIlluminanceMeasure - typedef REAL IfcIlluminanceMeasure; - // C++ wrapper type for IfcInductanceMeasure - typedef REAL IfcInductanceMeasure; - // C++ wrapper type for IfcInteger - typedef INTEGER IfcInteger; - // C++ wrapper type for IfcIntegerCountRateMeasure - typedef INTEGER IfcIntegerCountRateMeasure; - // C++ wrapper type for IfcIonConcentrationMeasure - typedef REAL IfcIonConcentrationMeasure; - // C++ wrapper type for IfcIsothermalMoistureCapacityMeasure - typedef REAL IfcIsothermalMoistureCapacityMeasure; - // C++ wrapper type for IfcKinematicViscosityMeasure - typedef REAL IfcKinematicViscosityMeasure; - // C++ wrapper type for IfcLabel - typedef STRING IfcLabel; - // C++ wrapper type for IfcLanguageId - typedef STRING IfcLanguageId; - // C++ wrapper type for IfcLengthMeasure - typedef REAL IfcLengthMeasure; - // C++ wrapper type for IfcLineIndex - typedef ListOf< INTEGER, 2, 0 > IfcLineIndex; - // C++ wrapper type for IfcLinearForceMeasure - typedef REAL IfcLinearForceMeasure; - // C++ wrapper type for IfcLinearMomentMeasure - typedef REAL IfcLinearMomentMeasure; - // C++ wrapper type for IfcLinearStiffnessMeasure - typedef REAL IfcLinearStiffnessMeasure; - // C++ wrapper type for IfcLinearVelocityMeasure - typedef REAL IfcLinearVelocityMeasure; - // C++ wrapper type for IfcLogical - typedef LOGICAL IfcLogical; - // C++ wrapper type for IfcLuminousFluxMeasure - typedef REAL IfcLuminousFluxMeasure; - // C++ wrapper type for IfcLuminousIntensityDistributionMeasure - typedef REAL IfcLuminousIntensityDistributionMeasure; - // C++ wrapper type for IfcLuminousIntensityMeasure - typedef REAL IfcLuminousIntensityMeasure; - // C++ wrapper type for IfcMagneticFluxDensityMeasure - typedef REAL IfcMagneticFluxDensityMeasure; - // C++ wrapper type for IfcMagneticFluxMeasure - typedef REAL IfcMagneticFluxMeasure; - // C++ wrapper type for IfcMassDensityMeasure - typedef REAL IfcMassDensityMeasure; - // C++ wrapper type for IfcMassFlowRateMeasure - typedef REAL IfcMassFlowRateMeasure; - // C++ wrapper type for IfcMassMeasure - typedef REAL IfcMassMeasure; - // C++ wrapper type for IfcMassPerLengthMeasure - typedef REAL IfcMassPerLengthMeasure; - // C++ wrapper type for IfcModulusOfElasticityMeasure - typedef REAL IfcModulusOfElasticityMeasure; - // C++ wrapper type for IfcModulusOfLinearSubgradeReactionMeasure - typedef REAL IfcModulusOfLinearSubgradeReactionMeasure; - // C++ wrapper type for IfcModulusOfRotationalSubgradeReactionMeasure - typedef REAL IfcModulusOfRotationalSubgradeReactionMeasure; - // C++ wrapper type for IfcModulusOfSubgradeReactionMeasure - typedef REAL IfcModulusOfSubgradeReactionMeasure; - // C++ wrapper type for IfcMoistureDiffusivityMeasure - typedef REAL IfcMoistureDiffusivityMeasure; - // C++ wrapper type for IfcMolecularWeightMeasure - typedef REAL IfcMolecularWeightMeasure; - // C++ wrapper type for IfcMomentOfInertiaMeasure - typedef REAL IfcMomentOfInertiaMeasure; - // C++ wrapper type for IfcMonetaryMeasure - typedef REAL IfcMonetaryMeasure; - // C++ wrapper type for IfcMonthInYearNumber - typedef INTEGER IfcMonthInYearNumber; - // C++ wrapper type for IfcNonNegativeLengthMeasure - typedef REAL IfcNonNegativeLengthMeasure; - // C++ wrapper type for IfcNormalisedRatioMeasure - typedef REAL IfcNormalisedRatioMeasure; - // C++ wrapper type for IfcNumericMeasure - typedef NUMBER IfcNumericMeasure; - // C++ wrapper type for IfcPHMeasure - typedef REAL IfcPHMeasure; - // C++ wrapper type for IfcParameterValue - typedef REAL IfcParameterValue; - // C++ wrapper type for IfcPlanarForceMeasure - typedef REAL IfcPlanarForceMeasure; - // C++ wrapper type for IfcPlaneAngleMeasure - typedef REAL IfcPlaneAngleMeasure; - // C++ wrapper type for IfcPositiveInteger - typedef INTEGER IfcPositiveInteger; - // C++ wrapper type for IfcPositiveLengthMeasure - typedef REAL IfcPositiveLengthMeasure; - // C++ wrapper type for IfcPositivePlaneAngleMeasure - typedef REAL IfcPositivePlaneAngleMeasure; - // C++ wrapper type for IfcPositiveRatioMeasure - typedef REAL IfcPositiveRatioMeasure; - // C++ wrapper type for IfcPowerMeasure - typedef REAL IfcPowerMeasure; - // C++ wrapper type for IfcPresentableText - typedef STRING IfcPresentableText; - // C++ wrapper type for IfcPressureMeasure - typedef REAL IfcPressureMeasure; - // C++ wrapper type for IfcRadioActivityMeasure - typedef REAL IfcRadioActivityMeasure; - // C++ wrapper type for IfcRatioMeasure - typedef REAL IfcRatioMeasure; - // C++ wrapper type for IfcReal - typedef REAL IfcReal; - // C++ wrapper type for IfcRotationalFrequencyMeasure - typedef REAL IfcRotationalFrequencyMeasure; - // C++ wrapper type for IfcRotationalMassMeasure - typedef REAL IfcRotationalMassMeasure; - // C++ wrapper type for IfcRotationalStiffnessMeasure - typedef REAL IfcRotationalStiffnessMeasure; - // C++ wrapper type for IfcSectionModulusMeasure - typedef REAL IfcSectionModulusMeasure; - // C++ wrapper type for IfcSectionalAreaIntegralMeasure - typedef REAL IfcSectionalAreaIntegralMeasure; - // C++ wrapper type for IfcShearModulusMeasure - typedef REAL IfcShearModulusMeasure; - // C++ wrapper type for IfcSolidAngleMeasure - typedef REAL IfcSolidAngleMeasure; - // C++ wrapper type for IfcSoundPowerLevelMeasure - typedef REAL IfcSoundPowerLevelMeasure; - // C++ wrapper type for IfcSoundPowerMeasure - typedef REAL IfcSoundPowerMeasure; - // C++ wrapper type for IfcSoundPressureLevelMeasure - typedef REAL IfcSoundPressureLevelMeasure; - // C++ wrapper type for IfcSoundPressureMeasure - typedef REAL IfcSoundPressureMeasure; - // C++ wrapper type for IfcSpecificHeatCapacityMeasure - typedef REAL IfcSpecificHeatCapacityMeasure; - // C++ wrapper type for IfcSpecularExponent - typedef REAL IfcSpecularExponent; - // C++ wrapper type for IfcSpecularRoughness - typedef REAL IfcSpecularRoughness; - // C++ wrapper type for IfcTemperatureGradientMeasure - typedef REAL IfcTemperatureGradientMeasure; - // C++ wrapper type for IfcTemperatureRateOfChangeMeasure - typedef REAL IfcTemperatureRateOfChangeMeasure; - // C++ wrapper type for IfcText - typedef STRING IfcText; - // C++ wrapper type for IfcTextAlignment - typedef STRING IfcTextAlignment; - // C++ wrapper type for IfcTextDecoration - typedef STRING IfcTextDecoration; - // C++ wrapper type for IfcTextFontName - typedef STRING IfcTextFontName; - // C++ wrapper type for IfcTextTransformation - typedef STRING IfcTextTransformation; - // C++ wrapper type for IfcThermalAdmittanceMeasure - typedef REAL IfcThermalAdmittanceMeasure; - // C++ wrapper type for IfcThermalConductivityMeasure - typedef REAL IfcThermalConductivityMeasure; - // C++ wrapper type for IfcThermalExpansionCoefficientMeasure - typedef REAL IfcThermalExpansionCoefficientMeasure; - // C++ wrapper type for IfcThermalResistanceMeasure - typedef REAL IfcThermalResistanceMeasure; - // C++ wrapper type for IfcThermalTransmittanceMeasure - typedef REAL IfcThermalTransmittanceMeasure; - // C++ wrapper type for IfcThermodynamicTemperatureMeasure - typedef REAL IfcThermodynamicTemperatureMeasure; - // C++ wrapper type for IfcTime - typedef STRING IfcTime; - // C++ wrapper type for IfcTimeMeasure - typedef REAL IfcTimeMeasure; - // C++ wrapper type for IfcTimeStamp - typedef INTEGER IfcTimeStamp; - // C++ wrapper type for IfcTorqueMeasure - typedef REAL IfcTorqueMeasure; - // C++ wrapper type for IfcURIReference - typedef STRING IfcURIReference; - // C++ wrapper type for IfcVaporPermeabilityMeasure - typedef REAL IfcVaporPermeabilityMeasure; - // C++ wrapper type for IfcVolumeMeasure - typedef REAL IfcVolumeMeasure; - // C++ wrapper type for IfcVolumetricFlowRateMeasure - typedef REAL IfcVolumetricFlowRateMeasure; - // C++ wrapper type for IfcWarpingConstantMeasure - typedef REAL IfcWarpingConstantMeasure; - // C++ wrapper type for IfcWarpingMomentMeasure - typedef REAL IfcWarpingMomentMeasure; - // C++ wrapper type for IfcActionRequestTypeEnum - typedef ENUMERATION IfcActionRequestTypeEnum; - // C++ wrapper type for IfcActionSourceTypeEnum - typedef ENUMERATION IfcActionSourceTypeEnum; - // C++ wrapper type for IfcActionTypeEnum - typedef ENUMERATION IfcActionTypeEnum; - // C++ wrapper type for IfcActuatorTypeEnum - typedef ENUMERATION IfcActuatorTypeEnum; - // C++ wrapper type for IfcAddressTypeEnum - typedef ENUMERATION IfcAddressTypeEnum; - // C++ wrapper type for IfcAirTerminalBoxTypeEnum - typedef ENUMERATION IfcAirTerminalBoxTypeEnum; - // C++ wrapper type for IfcAirTerminalTypeEnum - typedef ENUMERATION IfcAirTerminalTypeEnum; - // C++ wrapper type for IfcAirToAirHeatRecoveryTypeEnum - typedef ENUMERATION IfcAirToAirHeatRecoveryTypeEnum; - // C++ wrapper type for IfcAlarmTypeEnum - typedef ENUMERATION IfcAlarmTypeEnum; - // C++ wrapper type for IfcAnalysisModelTypeEnum - typedef ENUMERATION IfcAnalysisModelTypeEnum; - // C++ wrapper type for IfcAnalysisTheoryTypeEnum - typedef ENUMERATION IfcAnalysisTheoryTypeEnum; - // C++ wrapper type for IfcArithmeticOperatorEnum - typedef ENUMERATION IfcArithmeticOperatorEnum; - // C++ wrapper type for IfcAssemblyPlaceEnum - typedef ENUMERATION IfcAssemblyPlaceEnum; - // C++ wrapper type for IfcAudioVisualApplianceTypeEnum - typedef ENUMERATION IfcAudioVisualApplianceTypeEnum; - // C++ wrapper type for IfcBSplineCurveForm - typedef ENUMERATION IfcBSplineCurveForm; - // C++ wrapper type for IfcBSplineSurfaceForm - typedef ENUMERATION IfcBSplineSurfaceForm; - // C++ wrapper type for IfcBeamTypeEnum - typedef ENUMERATION IfcBeamTypeEnum; - // C++ wrapper type for IfcBenchmarkEnum - typedef ENUMERATION IfcBenchmarkEnum; - // C++ wrapper type for IfcBoilerTypeEnum - typedef ENUMERATION IfcBoilerTypeEnum; - // C++ wrapper type for IfcBooleanOperator - typedef ENUMERATION IfcBooleanOperator; - // C++ wrapper type for IfcBuildingElementPartTypeEnum - typedef ENUMERATION IfcBuildingElementPartTypeEnum; - // C++ wrapper type for IfcBuildingElementProxyTypeEnum - typedef ENUMERATION IfcBuildingElementProxyTypeEnum; - // C++ wrapper type for IfcBuildingSystemTypeEnum - typedef ENUMERATION IfcBuildingSystemTypeEnum; - // C++ wrapper type for IfcBurnerTypeEnum - typedef ENUMERATION IfcBurnerTypeEnum; - // C++ wrapper type for IfcCableCarrierFittingTypeEnum - typedef ENUMERATION IfcCableCarrierFittingTypeEnum; - // C++ wrapper type for IfcCableCarrierSegmentTypeEnum - typedef ENUMERATION IfcCableCarrierSegmentTypeEnum; - // C++ wrapper type for IfcCableFittingTypeEnum - typedef ENUMERATION IfcCableFittingTypeEnum; - // C++ wrapper type for IfcCableSegmentTypeEnum - typedef ENUMERATION IfcCableSegmentTypeEnum; - // C++ wrapper type for IfcChangeActionEnum - typedef ENUMERATION IfcChangeActionEnum; - // C++ wrapper type for IfcChillerTypeEnum - typedef ENUMERATION IfcChillerTypeEnum; - // C++ wrapper type for IfcChimneyTypeEnum - typedef ENUMERATION IfcChimneyTypeEnum; - // C++ wrapper type for IfcCoilTypeEnum - typedef ENUMERATION IfcCoilTypeEnum; - // C++ wrapper type for IfcColumnTypeEnum - typedef ENUMERATION IfcColumnTypeEnum; - // C++ wrapper type for IfcCommunicationsApplianceTypeEnum - typedef ENUMERATION IfcCommunicationsApplianceTypeEnum; - // C++ wrapper type for IfcComplexPropertyTemplateTypeEnum - typedef ENUMERATION IfcComplexPropertyTemplateTypeEnum; - // C++ wrapper type for IfcCompressorTypeEnum - typedef ENUMERATION IfcCompressorTypeEnum; - // C++ wrapper type for IfcCondenserTypeEnum - typedef ENUMERATION IfcCondenserTypeEnum; - // C++ wrapper type for IfcConnectionTypeEnum - typedef ENUMERATION IfcConnectionTypeEnum; - // C++ wrapper type for IfcConstraintEnum - typedef ENUMERATION IfcConstraintEnum; - // C++ wrapper type for IfcConstructionEquipmentResourceTypeEnum - typedef ENUMERATION IfcConstructionEquipmentResourceTypeEnum; - // C++ wrapper type for IfcConstructionMaterialResourceTypeEnum - typedef ENUMERATION IfcConstructionMaterialResourceTypeEnum; - // C++ wrapper type for IfcConstructionProductResourceTypeEnum - typedef ENUMERATION IfcConstructionProductResourceTypeEnum; - // C++ wrapper type for IfcControllerTypeEnum - typedef ENUMERATION IfcControllerTypeEnum; - // C++ wrapper type for IfcCooledBeamTypeEnum - typedef ENUMERATION IfcCooledBeamTypeEnum; - // C++ wrapper type for IfcCoolingTowerTypeEnum - typedef ENUMERATION IfcCoolingTowerTypeEnum; - // C++ wrapper type for IfcCostItemTypeEnum - typedef ENUMERATION IfcCostItemTypeEnum; - // C++ wrapper type for IfcCostScheduleTypeEnum - typedef ENUMERATION IfcCostScheduleTypeEnum; - // C++ wrapper type for IfcCoveringTypeEnum - typedef ENUMERATION IfcCoveringTypeEnum; - // C++ wrapper type for IfcCrewResourceTypeEnum - typedef ENUMERATION IfcCrewResourceTypeEnum; - // C++ wrapper type for IfcCurtainWallTypeEnum - typedef ENUMERATION IfcCurtainWallTypeEnum; - // C++ wrapper type for IfcCurveInterpolationEnum - typedef ENUMERATION IfcCurveInterpolationEnum; - // C++ wrapper type for IfcDamperTypeEnum - typedef ENUMERATION IfcDamperTypeEnum; - // C++ wrapper type for IfcDataOriginEnum - typedef ENUMERATION IfcDataOriginEnum; - // C++ wrapper type for IfcDerivedUnitEnum - typedef ENUMERATION IfcDerivedUnitEnum; - // C++ wrapper type for IfcDirectionSenseEnum - typedef ENUMERATION IfcDirectionSenseEnum; - // C++ wrapper type for IfcDiscreteAccessoryTypeEnum - typedef ENUMERATION IfcDiscreteAccessoryTypeEnum; - // C++ wrapper type for IfcDistributionChamberElementTypeEnum - typedef ENUMERATION IfcDistributionChamberElementTypeEnum; - // C++ wrapper type for IfcDistributionPortTypeEnum - typedef ENUMERATION IfcDistributionPortTypeEnum; - // C++ wrapper type for IfcDistributionSystemEnum - typedef ENUMERATION IfcDistributionSystemEnum; - // C++ wrapper type for IfcDocumentConfidentialityEnum - typedef ENUMERATION IfcDocumentConfidentialityEnum; - // C++ wrapper type for IfcDocumentStatusEnum - typedef ENUMERATION IfcDocumentStatusEnum; - // C++ wrapper type for IfcDoorPanelOperationEnum - typedef ENUMERATION IfcDoorPanelOperationEnum; - // C++ wrapper type for IfcDoorPanelPositionEnum - typedef ENUMERATION IfcDoorPanelPositionEnum; - // C++ wrapper type for IfcDoorStyleConstructionEnum - typedef ENUMERATION IfcDoorStyleConstructionEnum; - // C++ wrapper type for IfcDoorStyleOperationEnum - typedef ENUMERATION IfcDoorStyleOperationEnum; - // C++ wrapper type for IfcDoorTypeEnum - typedef ENUMERATION IfcDoorTypeEnum; - // C++ wrapper type for IfcDoorTypeOperationEnum - typedef ENUMERATION IfcDoorTypeOperationEnum; - // C++ wrapper type for IfcDuctFittingTypeEnum - typedef ENUMERATION IfcDuctFittingTypeEnum; - // C++ wrapper type for IfcDuctSegmentTypeEnum - typedef ENUMERATION IfcDuctSegmentTypeEnum; - // C++ wrapper type for IfcDuctSilencerTypeEnum - typedef ENUMERATION IfcDuctSilencerTypeEnum; - // C++ wrapper type for IfcElectricApplianceTypeEnum - typedef ENUMERATION IfcElectricApplianceTypeEnum; - // C++ wrapper type for IfcElectricDistributionBoardTypeEnum - typedef ENUMERATION IfcElectricDistributionBoardTypeEnum; - // C++ wrapper type for IfcElectricFlowStorageDeviceTypeEnum - typedef ENUMERATION IfcElectricFlowStorageDeviceTypeEnum; - // C++ wrapper type for IfcElectricGeneratorTypeEnum - typedef ENUMERATION IfcElectricGeneratorTypeEnum; - // C++ wrapper type for IfcElectricMotorTypeEnum - typedef ENUMERATION IfcElectricMotorTypeEnum; - // C++ wrapper type for IfcElectricTimeControlTypeEnum - typedef ENUMERATION IfcElectricTimeControlTypeEnum; - // C++ wrapper type for IfcElementAssemblyTypeEnum - typedef ENUMERATION IfcElementAssemblyTypeEnum; - // C++ wrapper type for IfcElementCompositionEnum - typedef ENUMERATION IfcElementCompositionEnum; - // C++ wrapper type for IfcEngineTypeEnum - typedef ENUMERATION IfcEngineTypeEnum; - // C++ wrapper type for IfcEvaporativeCoolerTypeEnum - typedef ENUMERATION IfcEvaporativeCoolerTypeEnum; - // C++ wrapper type for IfcEvaporatorTypeEnum - typedef ENUMERATION IfcEvaporatorTypeEnum; - // C++ wrapper type for IfcEventTriggerTypeEnum - typedef ENUMERATION IfcEventTriggerTypeEnum; - // C++ wrapper type for IfcEventTypeEnum - typedef ENUMERATION IfcEventTypeEnum; - // C++ wrapper type for IfcExternalSpatialElementTypeEnum - typedef ENUMERATION IfcExternalSpatialElementTypeEnum; - // C++ wrapper type for IfcFanTypeEnum - typedef ENUMERATION IfcFanTypeEnum; - // C++ wrapper type for IfcFastenerTypeEnum - typedef ENUMERATION IfcFastenerTypeEnum; - // C++ wrapper type for IfcFilterTypeEnum - typedef ENUMERATION IfcFilterTypeEnum; - // C++ wrapper type for IfcFireSuppressionTerminalTypeEnum - typedef ENUMERATION IfcFireSuppressionTerminalTypeEnum; - // C++ wrapper type for IfcFlowDirectionEnum - typedef ENUMERATION IfcFlowDirectionEnum; - // C++ wrapper type for IfcFlowInstrumentTypeEnum - typedef ENUMERATION IfcFlowInstrumentTypeEnum; - // C++ wrapper type for IfcFlowMeterTypeEnum - typedef ENUMERATION IfcFlowMeterTypeEnum; - // C++ wrapper type for IfcFootingTypeEnum - typedef ENUMERATION IfcFootingTypeEnum; - // C++ wrapper type for IfcFurnitureTypeEnum - typedef ENUMERATION IfcFurnitureTypeEnum; - // C++ wrapper type for IfcGeographicElementTypeEnum - typedef ENUMERATION IfcGeographicElementTypeEnum; - // C++ wrapper type for IfcGeometricProjectionEnum - typedef ENUMERATION IfcGeometricProjectionEnum; - // C++ wrapper type for IfcGlobalOrLocalEnum - typedef ENUMERATION IfcGlobalOrLocalEnum; - // C++ wrapper type for IfcGridTypeEnum - typedef ENUMERATION IfcGridTypeEnum; - // C++ wrapper type for IfcHeatExchangerTypeEnum - typedef ENUMERATION IfcHeatExchangerTypeEnum; - // C++ wrapper type for IfcHumidifierTypeEnum - typedef ENUMERATION IfcHumidifierTypeEnum; - // C++ wrapper type for IfcInterceptorTypeEnum - typedef ENUMERATION IfcInterceptorTypeEnum; - // C++ wrapper type for IfcInternalOrExternalEnum - typedef ENUMERATION IfcInternalOrExternalEnum; - // C++ wrapper type for IfcInventoryTypeEnum - typedef ENUMERATION IfcInventoryTypeEnum; - // C++ wrapper type for IfcJunctionBoxTypeEnum - typedef ENUMERATION IfcJunctionBoxTypeEnum; - // C++ wrapper type for IfcKnotType - typedef ENUMERATION IfcKnotType; - // C++ wrapper type for IfcLaborResourceTypeEnum - typedef ENUMERATION IfcLaborResourceTypeEnum; - // C++ wrapper type for IfcLampTypeEnum - typedef ENUMERATION IfcLampTypeEnum; - // C++ wrapper type for IfcLayerSetDirectionEnum - typedef ENUMERATION IfcLayerSetDirectionEnum; - // C++ wrapper type for IfcLightDistributionCurveEnum - typedef ENUMERATION IfcLightDistributionCurveEnum; - // C++ wrapper type for IfcLightEmissionSourceEnum - typedef ENUMERATION IfcLightEmissionSourceEnum; - // C++ wrapper type for IfcLightFixtureTypeEnum - typedef ENUMERATION IfcLightFixtureTypeEnum; - // C++ wrapper type for IfcLoadGroupTypeEnum - typedef ENUMERATION IfcLoadGroupTypeEnum; - // C++ wrapper type for IfcLogicalOperatorEnum - typedef ENUMERATION IfcLogicalOperatorEnum; - // C++ wrapper type for IfcMechanicalFastenerTypeEnum - typedef ENUMERATION IfcMechanicalFastenerTypeEnum; - // C++ wrapper type for IfcMedicalDeviceTypeEnum - typedef ENUMERATION IfcMedicalDeviceTypeEnum; - // C++ wrapper type for IfcMemberTypeEnum - typedef ENUMERATION IfcMemberTypeEnum; - // C++ wrapper type for IfcMotorConnectionTypeEnum - typedef ENUMERATION IfcMotorConnectionTypeEnum; - // C++ wrapper type for IfcNullStyle - typedef ENUMERATION IfcNullStyle; - // C++ wrapper type for IfcObjectTypeEnum - typedef ENUMERATION IfcObjectTypeEnum; - // C++ wrapper type for IfcObjectiveEnum - typedef ENUMERATION IfcObjectiveEnum; - // C++ wrapper type for IfcOccupantTypeEnum - typedef ENUMERATION IfcOccupantTypeEnum; - // C++ wrapper type for IfcOpeningElementTypeEnum - typedef ENUMERATION IfcOpeningElementTypeEnum; - // C++ wrapper type for IfcOutletTypeEnum - typedef ENUMERATION IfcOutletTypeEnum; - // C++ wrapper type for IfcPerformanceHistoryTypeEnum - typedef ENUMERATION IfcPerformanceHistoryTypeEnum; - // C++ wrapper type for IfcPermeableCoveringOperationEnum - typedef ENUMERATION IfcPermeableCoveringOperationEnum; - // C++ wrapper type for IfcPermitTypeEnum - typedef ENUMERATION IfcPermitTypeEnum; - // C++ wrapper type for IfcPhysicalOrVirtualEnum - typedef ENUMERATION IfcPhysicalOrVirtualEnum; - // C++ wrapper type for IfcPileConstructionEnum - typedef ENUMERATION IfcPileConstructionEnum; - // C++ wrapper type for IfcPileTypeEnum - typedef ENUMERATION IfcPileTypeEnum; - // C++ wrapper type for IfcPipeFittingTypeEnum - typedef ENUMERATION IfcPipeFittingTypeEnum; - // C++ wrapper type for IfcPipeSegmentTypeEnum - typedef ENUMERATION IfcPipeSegmentTypeEnum; - // C++ wrapper type for IfcPlateTypeEnum - typedef ENUMERATION IfcPlateTypeEnum; - // C++ wrapper type for IfcPreferredSurfaceCurveRepresentation - typedef ENUMERATION IfcPreferredSurfaceCurveRepresentation; - // C++ wrapper type for IfcProcedureTypeEnum - typedef ENUMERATION IfcProcedureTypeEnum; - // C++ wrapper type for IfcProfileTypeEnum - typedef ENUMERATION IfcProfileTypeEnum; - // C++ wrapper type for IfcProjectOrderTypeEnum - typedef ENUMERATION IfcProjectOrderTypeEnum; - // C++ wrapper type for IfcProjectedOrTrueLengthEnum - typedef ENUMERATION IfcProjectedOrTrueLengthEnum; - // C++ wrapper type for IfcProjectionElementTypeEnum - typedef ENUMERATION IfcProjectionElementTypeEnum; - // C++ wrapper type for IfcPropertySetTemplateTypeEnum - typedef ENUMERATION IfcPropertySetTemplateTypeEnum; - // C++ wrapper type for IfcProtectiveDeviceTrippingUnitTypeEnum - typedef ENUMERATION IfcProtectiveDeviceTrippingUnitTypeEnum; - // C++ wrapper type for IfcProtectiveDeviceTypeEnum - typedef ENUMERATION IfcProtectiveDeviceTypeEnum; - // C++ wrapper type for IfcPumpTypeEnum - typedef ENUMERATION IfcPumpTypeEnum; - // C++ wrapper type for IfcRailingTypeEnum - typedef ENUMERATION IfcRailingTypeEnum; - // C++ wrapper type for IfcRampFlightTypeEnum - typedef ENUMERATION IfcRampFlightTypeEnum; - // C++ wrapper type for IfcRampTypeEnum - typedef ENUMERATION IfcRampTypeEnum; - // C++ wrapper type for IfcRecurrenceTypeEnum - typedef ENUMERATION IfcRecurrenceTypeEnum; - // C++ wrapper type for IfcReflectanceMethodEnum - typedef ENUMERATION IfcReflectanceMethodEnum; - // C++ wrapper type for IfcReinforcingBarRoleEnum - typedef ENUMERATION IfcReinforcingBarRoleEnum; - // C++ wrapper type for IfcReinforcingBarSurfaceEnum - typedef ENUMERATION IfcReinforcingBarSurfaceEnum; - // C++ wrapper type for IfcReinforcingBarTypeEnum - typedef ENUMERATION IfcReinforcingBarTypeEnum; - // C++ wrapper type for IfcReinforcingMeshTypeEnum - typedef ENUMERATION IfcReinforcingMeshTypeEnum; - // C++ wrapper type for IfcRoleEnum - typedef ENUMERATION IfcRoleEnum; - // C++ wrapper type for IfcRoofTypeEnum - typedef ENUMERATION IfcRoofTypeEnum; - // C++ wrapper type for IfcSIPrefix - typedef ENUMERATION IfcSIPrefix; - // C++ wrapper type for IfcSIUnitName - typedef ENUMERATION IfcSIUnitName; - // C++ wrapper type for IfcSanitaryTerminalTypeEnum - typedef ENUMERATION IfcSanitaryTerminalTypeEnum; - // C++ wrapper type for IfcSectionTypeEnum - typedef ENUMERATION IfcSectionTypeEnum; - // C++ wrapper type for IfcSensorTypeEnum - typedef ENUMERATION IfcSensorTypeEnum; - // C++ wrapper type for IfcSequenceEnum - typedef ENUMERATION IfcSequenceEnum; - // C++ wrapper type for IfcShadingDeviceTypeEnum - typedef ENUMERATION IfcShadingDeviceTypeEnum; - // C++ wrapper type for IfcSimplePropertyTemplateTypeEnum - typedef ENUMERATION IfcSimplePropertyTemplateTypeEnum; - // C++ wrapper type for IfcSlabTypeEnum - typedef ENUMERATION IfcSlabTypeEnum; - // C++ wrapper type for IfcSolarDeviceTypeEnum - typedef ENUMERATION IfcSolarDeviceTypeEnum; - // C++ wrapper type for IfcSpaceHeaterTypeEnum - typedef ENUMERATION IfcSpaceHeaterTypeEnum; - // C++ wrapper type for IfcSpaceTypeEnum - typedef ENUMERATION IfcSpaceTypeEnum; - // C++ wrapper type for IfcSpatialZoneTypeEnum - typedef ENUMERATION IfcSpatialZoneTypeEnum; - // C++ wrapper type for IfcStackTerminalTypeEnum - typedef ENUMERATION IfcStackTerminalTypeEnum; - // C++ wrapper type for IfcStairFlightTypeEnum - typedef ENUMERATION IfcStairFlightTypeEnum; - // C++ wrapper type for IfcStairTypeEnum - typedef ENUMERATION IfcStairTypeEnum; - // C++ wrapper type for IfcStateEnum - typedef ENUMERATION IfcStateEnum; - // C++ wrapper type for IfcStructuralCurveActivityTypeEnum - typedef ENUMERATION IfcStructuralCurveActivityTypeEnum; - // C++ wrapper type for IfcStructuralCurveMemberTypeEnum - typedef ENUMERATION IfcStructuralCurveMemberTypeEnum; - // C++ wrapper type for IfcStructuralSurfaceActivityTypeEnum - typedef ENUMERATION IfcStructuralSurfaceActivityTypeEnum; - // C++ wrapper type for IfcStructuralSurfaceMemberTypeEnum - typedef ENUMERATION IfcStructuralSurfaceMemberTypeEnum; - // C++ wrapper type for IfcSubContractResourceTypeEnum - typedef ENUMERATION IfcSubContractResourceTypeEnum; - // C++ wrapper type for IfcSurfaceFeatureTypeEnum - typedef ENUMERATION IfcSurfaceFeatureTypeEnum; - // C++ wrapper type for IfcSurfaceSide - typedef ENUMERATION IfcSurfaceSide; - // C++ wrapper type for IfcSwitchingDeviceTypeEnum - typedef ENUMERATION IfcSwitchingDeviceTypeEnum; - // C++ wrapper type for IfcSystemFurnitureElementTypeEnum - typedef ENUMERATION IfcSystemFurnitureElementTypeEnum; - // C++ wrapper type for IfcTankTypeEnum - typedef ENUMERATION IfcTankTypeEnum; - // C++ wrapper type for IfcTaskDurationEnum - typedef ENUMERATION IfcTaskDurationEnum; - // C++ wrapper type for IfcTaskTypeEnum - typedef ENUMERATION IfcTaskTypeEnum; - // C++ wrapper type for IfcTendonAnchorTypeEnum - typedef ENUMERATION IfcTendonAnchorTypeEnum; - // C++ wrapper type for IfcTendonTypeEnum - typedef ENUMERATION IfcTendonTypeEnum; - // C++ wrapper type for IfcTextPath - typedef ENUMERATION IfcTextPath; - // C++ wrapper type for IfcTimeSeriesDataTypeEnum - typedef ENUMERATION IfcTimeSeriesDataTypeEnum; - // C++ wrapper type for IfcTransformerTypeEnum - typedef ENUMERATION IfcTransformerTypeEnum; - // C++ wrapper type for IfcTransitionCode - typedef ENUMERATION IfcTransitionCode; - // C++ wrapper type for IfcTransportElementTypeEnum - typedef ENUMERATION IfcTransportElementTypeEnum; - // C++ wrapper type for IfcTrimmingPreference - typedef ENUMERATION IfcTrimmingPreference; - // C++ wrapper type for IfcTubeBundleTypeEnum - typedef ENUMERATION IfcTubeBundleTypeEnum; - // C++ wrapper type for IfcUnitEnum - typedef ENUMERATION IfcUnitEnum; - // C++ wrapper type for IfcUnitaryControlElementTypeEnum - typedef ENUMERATION IfcUnitaryControlElementTypeEnum; - // C++ wrapper type for IfcUnitaryEquipmentTypeEnum - typedef ENUMERATION IfcUnitaryEquipmentTypeEnum; - // C++ wrapper type for IfcValveTypeEnum - typedef ENUMERATION IfcValveTypeEnum; - // C++ wrapper type for IfcVibrationIsolatorTypeEnum - typedef ENUMERATION IfcVibrationIsolatorTypeEnum; - // C++ wrapper type for IfcVoidingFeatureTypeEnum - typedef ENUMERATION IfcVoidingFeatureTypeEnum; - // C++ wrapper type for IfcWallTypeEnum - typedef ENUMERATION IfcWallTypeEnum; - // C++ wrapper type for IfcWasteTerminalTypeEnum - typedef ENUMERATION IfcWasteTerminalTypeEnum; - // C++ wrapper type for IfcWindowPanelOperationEnum - typedef ENUMERATION IfcWindowPanelOperationEnum; - // C++ wrapper type for IfcWindowPanelPositionEnum - typedef ENUMERATION IfcWindowPanelPositionEnum; - // C++ wrapper type for IfcWindowStyleConstructionEnum - typedef ENUMERATION IfcWindowStyleConstructionEnum; - // C++ wrapper type for IfcWindowStyleOperationEnum - typedef ENUMERATION IfcWindowStyleOperationEnum; - // C++ wrapper type for IfcWindowTypeEnum - typedef ENUMERATION IfcWindowTypeEnum; - // C++ wrapper type for IfcWindowTypePartitioningEnum - typedef ENUMERATION IfcWindowTypePartitioningEnum; - // C++ wrapper type for IfcWorkCalendarTypeEnum - typedef ENUMERATION IfcWorkCalendarTypeEnum; - // C++ wrapper type for IfcWorkPlanTypeEnum - typedef ENUMERATION IfcWorkPlanTypeEnum; - // C++ wrapper type for IfcWorkScheduleTypeEnum - typedef ENUMERATION IfcWorkScheduleTypeEnum; - // C++ wrapper type for IfcActorSelect - typedef SELECT IfcActorSelect; - // C++ wrapper type for IfcAppliedValueSelect - typedef SELECT IfcAppliedValueSelect; - // C++ wrapper type for IfcAxis2Placement - typedef SELECT IfcAxis2Placement; - // C++ wrapper type for IfcBendingParameterSelect - typedef SELECT IfcBendingParameterSelect; - // C++ wrapper type for IfcBooleanOperand - typedef SELECT IfcBooleanOperand; - // C++ wrapper type for IfcClassificationReferenceSelect - typedef SELECT IfcClassificationReferenceSelect; - // C++ wrapper type for IfcClassificationSelect - typedef SELECT IfcClassificationSelect; - // C++ wrapper type for IfcColour - typedef SELECT IfcColour; - // C++ wrapper type for IfcColourOrFactor - typedef SELECT IfcColourOrFactor; - // C++ wrapper type for IfcCoordinateReferenceSystemSelect - typedef SELECT IfcCoordinateReferenceSystemSelect; - // C++ wrapper type for IfcCsgSelect - typedef SELECT IfcCsgSelect; - // C++ wrapper type for IfcCurveFontOrScaledCurveFontSelect - typedef SELECT IfcCurveFontOrScaledCurveFontSelect; - // C++ wrapper type for IfcCurveOnSurface - typedef SELECT IfcCurveOnSurface; - // C++ wrapper type for IfcCurveOrEdgeCurve - typedef SELECT IfcCurveOrEdgeCurve; - // C++ wrapper type for IfcCurveStyleFontSelect - typedef SELECT IfcCurveStyleFontSelect; - // C++ wrapper type for IfcDefinitionSelect - typedef SELECT IfcDefinitionSelect; - // C++ wrapper type for IfcDerivedMeasureValue - typedef SELECT IfcDerivedMeasureValue; - // C++ wrapper type for IfcDocumentSelect - typedef SELECT IfcDocumentSelect; - // C++ wrapper type for IfcFillStyleSelect - typedef SELECT IfcFillStyleSelect; - // C++ wrapper type for IfcGeometricSetSelect - typedef SELECT IfcGeometricSetSelect; - // C++ wrapper type for IfcGridPlacementDirectionSelect - typedef SELECT IfcGridPlacementDirectionSelect; - // C++ wrapper type for IfcHatchLineDistanceSelect - typedef SELECT IfcHatchLineDistanceSelect; - // C++ wrapper type for IfcLayeredItem - typedef SELECT IfcLayeredItem; - // C++ wrapper type for IfcLibrarySelect - typedef SELECT IfcLibrarySelect; - // C++ wrapper type for IfcLightDistributionDataSourceSelect - typedef SELECT IfcLightDistributionDataSourceSelect; - // C++ wrapper type for IfcMaterialSelect - typedef SELECT IfcMaterialSelect; - // C++ wrapper type for IfcMeasureValue - typedef SELECT IfcMeasureValue; - // C++ wrapper type for IfcMetricValueSelect - typedef SELECT IfcMetricValueSelect; - // C++ wrapper type for IfcModulusOfRotationalSubgradeReactionSelect - typedef SELECT IfcModulusOfRotationalSubgradeReactionSelect; - // C++ wrapper type for IfcModulusOfSubgradeReactionSelect - typedef SELECT IfcModulusOfSubgradeReactionSelect; - // C++ wrapper type for IfcModulusOfTranslationalSubgradeReactionSelect - typedef SELECT IfcModulusOfTranslationalSubgradeReactionSelect; - // C++ wrapper type for IfcObjectReferenceSelect - typedef SELECT IfcObjectReferenceSelect; - // C++ wrapper type for IfcPointOrVertexPoint - typedef SELECT IfcPointOrVertexPoint; - // C++ wrapper type for IfcPresentationStyleSelect - typedef SELECT IfcPresentationStyleSelect; - // C++ wrapper type for IfcProcessSelect - typedef SELECT IfcProcessSelect; - // C++ wrapper type for IfcProductRepresentationSelect - typedef SELECT IfcProductRepresentationSelect; - // C++ wrapper type for IfcProductSelect - typedef SELECT IfcProductSelect; - // C++ wrapper type for IfcPropertySetDefinitionSelect - typedef SELECT IfcPropertySetDefinitionSelect; - // C++ wrapper type for IfcResourceObjectSelect - typedef SELECT IfcResourceObjectSelect; - // C++ wrapper type for IfcResourceSelect - typedef SELECT IfcResourceSelect; - // C++ wrapper type for IfcRotationalStiffnessSelect - typedef SELECT IfcRotationalStiffnessSelect; - // C++ wrapper type for IfcSegmentIndexSelect - typedef SELECT IfcSegmentIndexSelect; - // C++ wrapper type for IfcShell - typedef SELECT IfcShell; - // C++ wrapper type for IfcSimpleValue - typedef SELECT IfcSimpleValue; - // C++ wrapper type for IfcSizeSelect - typedef SELECT IfcSizeSelect; - // C++ wrapper type for IfcSolidOrShell - typedef SELECT IfcSolidOrShell; - // C++ wrapper type for IfcSpaceBoundarySelect - typedef SELECT IfcSpaceBoundarySelect; - // C++ wrapper type for IfcSpecularHighlightSelect - typedef SELECT IfcSpecularHighlightSelect; - // C++ wrapper type for IfcStructuralActivityAssignmentSelect - typedef SELECT IfcStructuralActivityAssignmentSelect; - // C++ wrapper type for IfcStyleAssignmentSelect - typedef SELECT IfcStyleAssignmentSelect; - // C++ wrapper type for IfcSurfaceOrFaceSurface - typedef SELECT IfcSurfaceOrFaceSurface; - // C++ wrapper type for IfcSurfaceStyleElementSelect - typedef SELECT IfcSurfaceStyleElementSelect; - // C++ wrapper type for IfcTextFontSelect - typedef SELECT IfcTextFontSelect; - // C++ wrapper type for IfcTimeOrRatioSelect - typedef SELECT IfcTimeOrRatioSelect; - // C++ wrapper type for IfcTranslationalStiffnessSelect - typedef SELECT IfcTranslationalStiffnessSelect; - // C++ wrapper type for IfcTrimmingSelect - typedef SELECT IfcTrimmingSelect; - // C++ wrapper type for IfcUnit - typedef SELECT IfcUnit; - // C++ wrapper type for IfcValue - typedef SELECT IfcValue; - // C++ wrapper type for IfcVectorOrDirection - typedef SELECT IfcVectorOrDirection; - // C++ wrapper type for IfcWarpingStiffnessSelect - typedef SELECT IfcWarpingStiffnessSelect; - - - // ****************************************************************************** - // IFC Entities - // ****************************************************************************** - - struct IfcRoot; - struct IfcObjectDefinition; - struct IfcObject; - struct IfcControl; - struct IfcActionRequest; - struct IfcActor; - typedef NotImplemented IfcActorRole; // (not currently used by Assimp) - struct IfcProduct; - struct IfcElement; - struct IfcDistributionElement; - struct IfcDistributionControlElement; - struct IfcActuator; - struct IfcTypeObject; - struct IfcTypeProduct; - struct IfcElementType; - struct IfcDistributionElementType; - struct IfcDistributionControlElementType; - struct IfcActuatorType; - typedef NotImplemented IfcAddress; // (not currently used by Assimp) - struct IfcRepresentationItem; - struct IfcGeometricRepresentationItem; - struct IfcSolidModel; - struct IfcManifoldSolidBrep; - struct IfcAdvancedBrep; - struct IfcAdvancedBrepWithVoids; - struct IfcTopologicalRepresentationItem; - struct IfcFace; - struct IfcFaceSurface; - struct IfcAdvancedFace; - struct IfcDistributionFlowElement; - struct IfcFlowTerminal; - struct IfcAirTerminal; - struct IfcFlowController; - struct IfcAirTerminalBox; - struct IfcDistributionFlowElementType; - struct IfcFlowControllerType; - struct IfcAirTerminalBoxType; - struct IfcFlowTerminalType; - struct IfcAirTerminalType; - struct IfcEnergyConversionDevice; - struct IfcAirToAirHeatRecovery; - struct IfcEnergyConversionDeviceType; - struct IfcAirToAirHeatRecoveryType; - struct IfcAlarm; - struct IfcAlarmType; - struct IfcAnnotation; - struct IfcAnnotationFillArea; - typedef NotImplemented IfcApplication; // (not currently used by Assimp) - typedef NotImplemented IfcAppliedValue; // (not currently used by Assimp) - typedef NotImplemented IfcApproval; // (not currently used by Assimp) - typedef NotImplemented IfcResourceLevelRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcApprovalRelationship; // (not currently used by Assimp) - struct IfcProfileDef; - struct IfcArbitraryClosedProfileDef; - struct IfcArbitraryOpenProfileDef; - struct IfcArbitraryProfileDefWithVoids; - struct IfcGroup; - struct IfcAsset; - struct IfcParameterizedProfileDef; - struct IfcAsymmetricIShapeProfileDef; - struct IfcAudioVisualAppliance; - struct IfcAudioVisualApplianceType; - struct IfcPlacement; - struct IfcAxis1Placement; - struct IfcAxis2Placement2D; - struct IfcAxis2Placement3D; - struct IfcCurve; - struct IfcBoundedCurve; - struct IfcBSplineCurve; - struct IfcBSplineCurveWithKnots; - struct IfcSurface; - struct IfcBoundedSurface; - struct IfcBSplineSurface; - struct IfcBSplineSurfaceWithKnots; - struct IfcBuildingElement; - struct IfcBeam; - struct IfcBeamStandardCase; - struct IfcBuildingElementType; - struct IfcBeamType; - struct IfcPresentationItem; - typedef NotImplemented IfcSurfaceTexture; // (not currently used by Assimp) - typedef NotImplemented IfcBlobTexture; // (not currently used by Assimp) - struct IfcCsgPrimitive3D; - struct IfcBlock; - struct IfcBoiler; - struct IfcBoilerType; - struct IfcBooleanResult; - struct IfcBooleanClippingResult; - typedef NotImplemented IfcBoundaryCondition; // (not currently used by Assimp) - struct IfcCompositeCurve; - struct IfcCompositeCurveOnSurface; - struct IfcBoundaryCurve; - typedef NotImplemented IfcBoundaryEdgeCondition; // (not currently used by Assimp) - typedef NotImplemented IfcBoundaryFaceCondition; // (not currently used by Assimp) - typedef NotImplemented IfcBoundaryNodeCondition; // (not currently used by Assimp) - typedef NotImplemented IfcBoundaryNodeConditionWarping; // (not currently used by Assimp) - struct IfcBoundingBox; - struct IfcHalfSpaceSolid; - struct IfcBoxedHalfSpace; - struct IfcSpatialElement; - struct IfcSpatialStructureElement; - struct IfcBuilding; - struct IfcElementComponent; - struct IfcBuildingElementPart; - struct IfcElementComponentType; - struct IfcBuildingElementPartType; - struct IfcBuildingElementProxy; - struct IfcBuildingElementProxyType; - struct IfcBuildingStorey; - struct IfcSystem; - struct IfcBuildingSystem; - struct IfcBurner; - struct IfcBurnerType; - struct IfcCShapeProfileDef; - struct IfcFlowFitting; - struct IfcCableCarrierFitting; - struct IfcFlowFittingType; - struct IfcCableCarrierFittingType; - struct IfcFlowSegment; - struct IfcCableCarrierSegment; - struct IfcFlowSegmentType; - struct IfcCableCarrierSegmentType; - struct IfcCableFitting; - struct IfcCableFittingType; - struct IfcCableSegment; - struct IfcCableSegmentType; - struct IfcPoint; - struct IfcCartesianPoint; - struct IfcCartesianPointList; - struct IfcCartesianPointList2D; - struct IfcCartesianPointList3D; - struct IfcCartesianTransformationOperator; - struct IfcCartesianTransformationOperator2D; - struct IfcCartesianTransformationOperator2DnonUniform; - struct IfcCartesianTransformationOperator3D; - struct IfcCartesianTransformationOperator3DnonUniform; - struct IfcCenterLineProfileDef; - struct IfcChiller; - struct IfcChillerType; - struct IfcChimney; - struct IfcChimneyType; - struct IfcConic; - struct IfcCircle; - struct IfcCircleProfileDef; - struct IfcCircleHollowProfileDef; - struct IfcCivilElement; - struct IfcCivilElementType; - typedef NotImplemented IfcExternalInformation; // (not currently used by Assimp) - typedef NotImplemented IfcClassification; // (not currently used by Assimp) - typedef NotImplemented IfcExternalReference; // (not currently used by Assimp) - typedef NotImplemented IfcClassificationReference; // (not currently used by Assimp) - struct IfcConnectedFaceSet; - struct IfcClosedShell; - struct IfcCoil; - struct IfcCoilType; - struct IfcColourSpecification; - struct IfcColourRgb; - typedef NotImplemented IfcColourRgbList; // (not currently used by Assimp) - struct IfcColumn; - struct IfcColumnStandardCase; - struct IfcColumnType; - struct IfcCommunicationsAppliance; - struct IfcCommunicationsApplianceType; - struct IfcPropertyAbstraction; - struct IfcProperty; - struct IfcComplexProperty; - struct IfcPropertyDefinition; - typedef NotImplemented IfcPropertyTemplateDefinition; // (not currently used by Assimp) - typedef NotImplemented IfcPropertyTemplate; // (not currently used by Assimp) - typedef NotImplemented IfcComplexPropertyTemplate; // (not currently used by Assimp) - struct IfcCompositeCurveSegment; - struct IfcCompositeProfileDef; - struct IfcFlowMovingDevice; - struct IfcCompressor; - struct IfcFlowMovingDeviceType; - struct IfcCompressorType; - struct IfcCondenser; - struct IfcCondenserType; - typedef NotImplemented IfcConnectionGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionCurveGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionPointGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionPointEccentricity; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionSurfaceGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConnectionVolumeGeometry; // (not currently used by Assimp) - typedef NotImplemented IfcConstraint; // (not currently used by Assimp) - struct IfcResource; - struct IfcConstructionResource; - struct IfcConstructionEquipmentResource; - struct IfcTypeResource; - struct IfcConstructionResourceType; - struct IfcConstructionEquipmentResourceType; - struct IfcConstructionMaterialResource; - struct IfcConstructionMaterialResourceType; - struct IfcConstructionProductResource; - struct IfcConstructionProductResourceType; - struct IfcContext; - struct IfcNamedUnit; - struct IfcContextDependentUnit; - struct IfcController; - struct IfcControllerType; - struct IfcConversionBasedUnit; - struct IfcConversionBasedUnitWithOffset; - struct IfcCooledBeam; - struct IfcCooledBeamType; - struct IfcCoolingTower; - struct IfcCoolingTowerType; - typedef NotImplemented IfcCoordinateOperation; // (not currently used by Assimp) - typedef NotImplemented IfcCoordinateReferenceSystem; // (not currently used by Assimp) - struct IfcCostItem; - struct IfcCostSchedule; - typedef NotImplemented IfcCostValue; // (not currently used by Assimp) - struct IfcCovering; - struct IfcCoveringType; - struct IfcCrewResource; - struct IfcCrewResourceType; - struct IfcCsgSolid; - typedef NotImplemented IfcCurrencyRelationship; // (not currently used by Assimp) - struct IfcCurtainWall; - struct IfcCurtainWallType; - struct IfcCurveBoundedPlane; - struct IfcCurveBoundedSurface; - struct IfcPresentationStyle; - typedef NotImplemented IfcCurveStyle; // (not currently used by Assimp) - typedef NotImplemented IfcCurveStyleFont; // (not currently used by Assimp) - typedef NotImplemented IfcCurveStyleFontAndScaling; // (not currently used by Assimp) - typedef NotImplemented IfcCurveStyleFontPattern; // (not currently used by Assimp) - struct IfcElementarySurface; - struct IfcCylindricalSurface; - struct IfcDamper; - struct IfcDamperType; - struct IfcDerivedProfileDef; - typedef NotImplemented IfcDerivedUnit; // (not currently used by Assimp) - typedef NotImplemented IfcDerivedUnitElement; // (not currently used by Assimp) - typedef NotImplemented IfcDimensionalExponents; // (not currently used by Assimp) - struct IfcDirection; - struct IfcDiscreteAccessory; - struct IfcDiscreteAccessoryType; - struct IfcDistributionChamberElement; - struct IfcDistributionChamberElementType; - struct IfcDistributionSystem; - struct IfcDistributionCircuit; - struct IfcPort; - struct IfcDistributionPort; - typedef NotImplemented IfcDocumentInformation; // (not currently used by Assimp) - typedef NotImplemented IfcDocumentInformationRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcDocumentReference; // (not currently used by Assimp) - struct IfcDoor; - struct IfcPropertySetDefinition; - typedef NotImplemented IfcPreDefinedPropertySet; // (not currently used by Assimp) - typedef NotImplemented IfcDoorLiningProperties; // (not currently used by Assimp) - typedef NotImplemented IfcDoorPanelProperties; // (not currently used by Assimp) - struct IfcDoorStandardCase; - struct IfcDoorStyle; - struct IfcDoorType; - typedef NotImplemented IfcPreDefinedItem; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedColour; // (not currently used by Assimp) - typedef NotImplemented IfcDraughtingPreDefinedColour; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedCurveFont; // (not currently used by Assimp) - typedef NotImplemented IfcDraughtingPreDefinedCurveFont; // (not currently used by Assimp) - struct IfcDuctFitting; - struct IfcDuctFittingType; - struct IfcDuctSegment; - struct IfcDuctSegmentType; - struct IfcFlowTreatmentDevice; - struct IfcDuctSilencer; - struct IfcFlowTreatmentDeviceType; - struct IfcDuctSilencerType; - struct IfcEdge; - struct IfcEdgeCurve; - struct IfcLoop; - struct IfcEdgeLoop; - struct IfcElectricAppliance; - struct IfcElectricApplianceType; - struct IfcElectricDistributionBoard; - struct IfcElectricDistributionBoardType; - struct IfcFlowStorageDevice; - struct IfcElectricFlowStorageDevice; - struct IfcFlowStorageDeviceType; - struct IfcElectricFlowStorageDeviceType; - struct IfcElectricGenerator; - struct IfcElectricGeneratorType; - struct IfcElectricMotor; - struct IfcElectricMotorType; - struct IfcElectricTimeControl; - struct IfcElectricTimeControlType; - struct IfcElementAssembly; - struct IfcElementAssemblyType; - struct IfcQuantitySet; - struct IfcElementQuantity; - struct IfcEllipse; - struct IfcEllipseProfileDef; - struct IfcEngine; - struct IfcEngineType; - struct IfcEvaporativeCooler; - struct IfcEvaporativeCoolerType; - struct IfcEvaporator; - struct IfcEvaporatorType; - struct IfcProcess; - struct IfcEvent; - typedef NotImplemented IfcSchedulingTime; // (not currently used by Assimp) - typedef NotImplemented IfcEventTime; // (not currently used by Assimp) - struct IfcTypeProcess; - struct IfcEventType; - typedef NotImplemented IfcExtendedProperties; // (not currently used by Assimp) - typedef NotImplemented IfcExternalReferenceRelationship; // (not currently used by Assimp) - struct IfcExternalSpatialStructureElement; - struct IfcExternalSpatialElement; - typedef NotImplemented IfcExternallyDefinedHatchStyle; // (not currently used by Assimp) - typedef NotImplemented IfcExternallyDefinedSurfaceStyle; // (not currently used by Assimp) - typedef NotImplemented IfcExternallyDefinedTextFont; // (not currently used by Assimp) - struct IfcSweptAreaSolid; - struct IfcExtrudedAreaSolid; - struct IfcExtrudedAreaSolidTapered; - struct IfcFaceBasedSurfaceModel; - struct IfcFaceBound; - struct IfcFaceOuterBound; - struct IfcFacetedBrep; - struct IfcFacetedBrepWithVoids; - typedef NotImplemented IfcStructuralConnectionCondition; // (not currently used by Assimp) - typedef NotImplemented IfcFailureConnectionCondition; // (not currently used by Assimp) - struct IfcFan; - struct IfcFanType; - struct IfcFastener; - struct IfcFastenerType; - struct IfcFeatureElement; - struct IfcFeatureElementAddition; - struct IfcFeatureElementSubtraction; - typedef NotImplemented IfcFillAreaStyle; // (not currently used by Assimp) - struct IfcFillAreaStyleHatching; - struct IfcFillAreaStyleTiles; - struct IfcFilter; - struct IfcFilterType; - struct IfcFireSuppressionTerminal; - struct IfcFireSuppressionTerminalType; - struct IfcFixedReferenceSweptAreaSolid; - struct IfcFlowInstrument; - struct IfcFlowInstrumentType; - struct IfcFlowMeter; - struct IfcFlowMeterType; - struct IfcFooting; - struct IfcFootingType; - struct IfcFurnishingElement; - struct IfcFurnishingElementType; - struct IfcFurniture; - struct IfcFurnitureType; - struct IfcGeographicElement; - struct IfcGeographicElementType; - struct IfcGeometricSet; - struct IfcGeometricCurveSet; - struct IfcRepresentationContext; - struct IfcGeometricRepresentationContext; - struct IfcGeometricRepresentationSubContext; - struct IfcGrid; - typedef NotImplemented IfcGridAxis; // (not currently used by Assimp) - struct IfcObjectPlacement; - struct IfcGridPlacement; - struct IfcHeatExchanger; - struct IfcHeatExchangerType; - struct IfcHumidifier; - struct IfcHumidifierType; - struct IfcIShapeProfileDef; - typedef NotImplemented IfcImageTexture; // (not currently used by Assimp) - typedef NotImplemented IfcIndexedColourMap; // (not currently used by Assimp) - struct IfcIndexedPolyCurve; - struct IfcTessellatedItem; - struct IfcIndexedPolygonalFace; - struct IfcIndexedPolygonalFaceWithVoids; - typedef NotImplemented IfcTextureCoordinate; // (not currently used by Assimp) - typedef NotImplemented IfcIndexedTextureMap; // (not currently used by Assimp) - typedef NotImplemented IfcIndexedTriangleTextureMap; // (not currently used by Assimp) - struct IfcInterceptor; - struct IfcInterceptorType; - struct IfcSurfaceCurve; - struct IfcIntersectionCurve; - struct IfcInventory; - typedef NotImplemented IfcTimeSeries; // (not currently used by Assimp) - typedef NotImplemented IfcIrregularTimeSeries; // (not currently used by Assimp) - typedef NotImplemented IfcIrregularTimeSeriesValue; // (not currently used by Assimp) - struct IfcJunctionBox; - struct IfcJunctionBoxType; - struct IfcLShapeProfileDef; - struct IfcLaborResource; - struct IfcLaborResourceType; - typedef NotImplemented IfcLagTime; // (not currently used by Assimp) - struct IfcLamp; - struct IfcLampType; - typedef NotImplemented IfcLibraryInformation; // (not currently used by Assimp) - typedef NotImplemented IfcLibraryReference; // (not currently used by Assimp) - typedef NotImplemented IfcLightDistributionData; // (not currently used by Assimp) - struct IfcLightFixture; - struct IfcLightFixtureType; - typedef NotImplemented IfcLightIntensityDistribution; // (not currently used by Assimp) - struct IfcLightSource; - struct IfcLightSourceAmbient; - struct IfcLightSourceDirectional; - struct IfcLightSourceGoniometric; - struct IfcLightSourcePositional; - struct IfcLightSourceSpot; - struct IfcLine; - struct IfcLocalPlacement; - typedef NotImplemented IfcMapConversion; // (not currently used by Assimp) - struct IfcMappedItem; - typedef NotImplemented IfcMaterialDefinition; // (not currently used by Assimp) - typedef NotImplemented IfcMaterial; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialClassificationRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialConstituent; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialConstituentSet; // (not currently used by Assimp) - struct IfcProductRepresentation; - struct IfcMaterialDefinitionRepresentation; - typedef NotImplemented IfcMaterialLayer; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialLayerSet; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialUsageDefinition; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialLayerSetUsage; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialLayerWithOffsets; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialList; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialProfile; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialProfileSet; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialProfileSetUsage; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialProfileSetUsageTapering; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialProfileWithOffsets; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialProperties; // (not currently used by Assimp) - typedef NotImplemented IfcMaterialRelationship; // (not currently used by Assimp) - struct IfcMeasureWithUnit; - struct IfcMechanicalFastener; - struct IfcMechanicalFastenerType; - struct IfcMedicalDevice; - struct IfcMedicalDeviceType; - struct IfcMember; - struct IfcMemberStandardCase; - struct IfcMemberType; - typedef NotImplemented IfcMetric; // (not currently used by Assimp) - struct IfcMirroredProfileDef; - typedef NotImplemented IfcMonetaryUnit; // (not currently used by Assimp) - struct IfcMotorConnection; - struct IfcMotorConnectionType; - typedef NotImplemented IfcObjective; // (not currently used by Assimp) - struct IfcOccupant; - struct IfcOffsetCurve2D; - struct IfcOffsetCurve3D; - struct IfcOpenShell; - struct IfcOpeningElement; - struct IfcOpeningStandardCase; - typedef NotImplemented IfcOrganization; // (not currently used by Assimp) - typedef NotImplemented IfcOrganizationRelationship; // (not currently used by Assimp) - struct IfcOrientedEdge; - struct IfcOuterBoundaryCurve; - struct IfcOutlet; - struct IfcOutletType; - typedef NotImplemented IfcOwnerHistory; // (not currently used by Assimp) - struct IfcPath; - struct IfcPcurve; - struct IfcPerformanceHistory; - typedef NotImplemented IfcPermeableCoveringProperties; // (not currently used by Assimp) - struct IfcPermit; - typedef NotImplemented IfcPerson; // (not currently used by Assimp) - typedef NotImplemented IfcPersonAndOrganization; // (not currently used by Assimp) - typedef NotImplemented IfcPhysicalQuantity; // (not currently used by Assimp) - typedef NotImplemented IfcPhysicalComplexQuantity; // (not currently used by Assimp) - typedef NotImplemented IfcPhysicalSimpleQuantity; // (not currently used by Assimp) - struct IfcPile; - struct IfcPileType; - struct IfcPipeFitting; - struct IfcPipeFittingType; - struct IfcPipeSegment; - struct IfcPipeSegmentType; - typedef NotImplemented IfcPixelTexture; // (not currently used by Assimp) - struct IfcPlanarExtent; - struct IfcPlanarBox; - struct IfcPlane; - struct IfcPlate; - struct IfcPlateStandardCase; - struct IfcPlateType; - struct IfcPointOnCurve; - struct IfcPointOnSurface; - struct IfcPolyLoop; - struct IfcPolygonalBoundedHalfSpace; - struct IfcTessellatedFaceSet; - struct IfcPolygonalFaceSet; - struct IfcPolyline; - typedef NotImplemented IfcPostalAddress; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedProperties; // (not currently used by Assimp) - typedef NotImplemented IfcPreDefinedTextFont; // (not currently used by Assimp) - typedef NotImplemented IfcPresentationLayerAssignment; // (not currently used by Assimp) - typedef NotImplemented IfcPresentationLayerWithStyle; // (not currently used by Assimp) - struct IfcPresentationStyleAssignment; - struct IfcProcedure; - struct IfcProcedureType; - struct IfcProductDefinitionShape; - typedef NotImplemented IfcProfileProperties; // (not currently used by Assimp) - struct IfcProject; - struct IfcProjectLibrary; - struct IfcProjectOrder; - typedef NotImplemented IfcProjectedCRS; // (not currently used by Assimp) - struct IfcProjectionElement; - struct IfcSimpleProperty; - struct IfcPropertyBoundedValue; - typedef NotImplemented IfcPropertyDependencyRelationship; // (not currently used by Assimp) - struct IfcPropertyEnumeratedValue; - typedef NotImplemented IfcPropertyEnumeration; // (not currently used by Assimp) - struct IfcPropertyListValue; - struct IfcPropertyReferenceValue; - struct IfcPropertySet; - typedef NotImplemented IfcPropertySetTemplate; // (not currently used by Assimp) - struct IfcPropertySingleValue; - struct IfcPropertyTableValue; - struct IfcProtectiveDevice; - struct IfcProtectiveDeviceTrippingUnit; - struct IfcProtectiveDeviceTrippingUnitType; - struct IfcProtectiveDeviceType; - struct IfcProxy; - struct IfcPump; - struct IfcPumpType; - typedef NotImplemented IfcQuantityArea; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityCount; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityLength; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityTime; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityVolume; // (not currently used by Assimp) - typedef NotImplemented IfcQuantityWeight; // (not currently used by Assimp) - struct IfcRailing; - struct IfcRailingType; - struct IfcRamp; - struct IfcRampFlight; - struct IfcRampFlightType; - struct IfcRampType; - struct IfcRationalBSplineCurveWithKnots; - struct IfcRationalBSplineSurfaceWithKnots; - struct IfcRectangleProfileDef; - struct IfcRectangleHollowProfileDef; - struct IfcRectangularPyramid; - struct IfcRectangularTrimmedSurface; - typedef NotImplemented IfcRecurrencePattern; // (not currently used by Assimp) - typedef NotImplemented IfcReference; // (not currently used by Assimp) - typedef NotImplemented IfcRegularTimeSeries; // (not currently used by Assimp) - typedef NotImplemented IfcReinforcementBarProperties; // (not currently used by Assimp) - typedef NotImplemented IfcReinforcementDefinitionProperties; // (not currently used by Assimp) - struct IfcReinforcingElement; - struct IfcReinforcingBar; - struct IfcReinforcingElementType; - struct IfcReinforcingBarType; - struct IfcReinforcingMesh; - struct IfcReinforcingMeshType; - struct IfcRelationship; - struct IfcRelDecomposes; - struct IfcRelAggregates; - typedef NotImplemented IfcRelAssigns; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToActor; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToControl; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToGroup; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToGroupByFactor; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToProcess; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToProduct; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssignsToResource; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociates; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesApproval; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesClassification; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesConstraint; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesDocument; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesLibrary; // (not currently used by Assimp) - typedef NotImplemented IfcRelAssociatesMaterial; // (not currently used by Assimp) - struct IfcRelConnects; - typedef NotImplemented IfcRelConnectsElements; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsPathElements; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsPortToElement; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsPorts; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsStructuralActivity; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsStructuralMember; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsWithEccentricity; // (not currently used by Assimp) - typedef NotImplemented IfcRelConnectsWithRealizingElements; // (not currently used by Assimp) - struct IfcRelContainedInSpatialStructure; - typedef NotImplemented IfcRelCoversBldgElements; // (not currently used by Assimp) - typedef NotImplemented IfcRelCoversSpaces; // (not currently used by Assimp) - typedef NotImplemented IfcRelDeclares; // (not currently used by Assimp) - struct IfcRelDefines; - typedef NotImplemented IfcRelDefinesByObject; // (not currently used by Assimp) - struct IfcRelDefinesByProperties; - typedef NotImplemented IfcRelDefinesByTemplate; // (not currently used by Assimp) - typedef NotImplemented IfcRelDefinesByType; // (not currently used by Assimp) - struct IfcRelFillsElement; - typedef NotImplemented IfcRelFlowControlElements; // (not currently used by Assimp) - typedef NotImplemented IfcRelInterferesElements; // (not currently used by Assimp) - typedef NotImplemented IfcRelNests; // (not currently used by Assimp) - typedef NotImplemented IfcRelProjectsElement; // (not currently used by Assimp) - typedef NotImplemented IfcRelReferencedInSpatialStructure; // (not currently used by Assimp) - typedef NotImplemented IfcRelSequence; // (not currently used by Assimp) - typedef NotImplemented IfcRelServicesBuildings; // (not currently used by Assimp) - typedef NotImplemented IfcRelSpaceBoundary; // (not currently used by Assimp) - typedef NotImplemented IfcRelSpaceBoundary1stLevel; // (not currently used by Assimp) - typedef NotImplemented IfcRelSpaceBoundary2ndLevel; // (not currently used by Assimp) - struct IfcRelVoidsElement; - struct IfcReparametrisedCompositeCurveSegment; - struct IfcRepresentation; - struct IfcRepresentationMap; - typedef NotImplemented IfcResourceApprovalRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcResourceConstraintRelationship; // (not currently used by Assimp) - typedef NotImplemented IfcResourceTime; // (not currently used by Assimp) - struct IfcRevolvedAreaSolid; - struct IfcRevolvedAreaSolidTapered; - struct IfcRightCircularCone; - struct IfcRightCircularCylinder; - struct IfcRoof; - struct IfcRoofType; - struct IfcRoundedRectangleProfileDef; - struct IfcSIUnit; - struct IfcSanitaryTerminal; - struct IfcSanitaryTerminalType; - struct IfcSeamCurve; - typedef NotImplemented IfcSectionProperties; // (not currently used by Assimp) - typedef NotImplemented IfcSectionReinforcementProperties; // (not currently used by Assimp) - struct IfcSectionedSpine; - struct IfcSensor; - struct IfcSensorType; - struct IfcShadingDevice; - struct IfcShadingDeviceType; - typedef NotImplemented IfcShapeAspect; // (not currently used by Assimp) - struct IfcShapeModel; - struct IfcShapeRepresentation; - struct IfcShellBasedSurfaceModel; - typedef NotImplemented IfcSimplePropertyTemplate; // (not currently used by Assimp) - struct IfcSite; - struct IfcSlab; - struct IfcSlabElementedCase; - struct IfcSlabStandardCase; - struct IfcSlabType; - typedef NotImplemented IfcSlippageConnectionCondition; // (not currently used by Assimp) - struct IfcSolarDevice; - struct IfcSolarDeviceType; - struct IfcSpace; - struct IfcSpaceHeater; - struct IfcSpaceHeaterType; - struct IfcSpatialElementType; - struct IfcSpatialStructureElementType; - struct IfcSpaceType; - struct IfcSpatialZone; - struct IfcSpatialZoneType; - struct IfcSphere; - struct IfcSphericalSurface; - struct IfcStackTerminal; - struct IfcStackTerminalType; - struct IfcStair; - struct IfcStairFlight; - struct IfcStairFlightType; - struct IfcStairType; - struct IfcStructuralActivity; - struct IfcStructuralAction; - struct IfcStructuralAnalysisModel; - struct IfcStructuralItem; - struct IfcStructuralConnection; - struct IfcStructuralCurveAction; - struct IfcStructuralCurveConnection; - struct IfcStructuralMember; - struct IfcStructuralCurveMember; - struct IfcStructuralCurveMemberVarying; - struct IfcStructuralReaction; - struct IfcStructuralCurveReaction; - struct IfcStructuralLinearAction; - typedef NotImplemented IfcStructuralLoad; // (not currently used by Assimp) - struct IfcStructuralLoadGroup; - struct IfcStructuralLoadCase; - typedef NotImplemented IfcStructuralLoadConfiguration; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadOrResult; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadStatic; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadLinearForce; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadPlanarForce; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadSingleDisplacement; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadSingleDisplacementDistortion; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadSingleForce; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadSingleForceWarping; // (not currently used by Assimp) - typedef NotImplemented IfcStructuralLoadTemperature; // (not currently used by Assimp) - struct IfcStructuralSurfaceAction; - struct IfcStructuralPlanarAction; - struct IfcStructuralPointAction; - struct IfcStructuralPointConnection; - struct IfcStructuralPointReaction; - struct IfcStructuralResultGroup; - struct IfcStructuralSurfaceConnection; - struct IfcStructuralSurfaceMember; - struct IfcStructuralSurfaceMemberVarying; - struct IfcStructuralSurfaceReaction; - struct IfcStyleModel; - struct IfcStyledItem; - struct IfcStyledRepresentation; - struct IfcSubContractResource; - struct IfcSubContractResourceType; - struct IfcSubedge; - struct IfcSurfaceCurveSweptAreaSolid; - struct IfcSurfaceFeature; - struct IfcSweptSurface; - struct IfcSurfaceOfLinearExtrusion; - struct IfcSurfaceOfRevolution; - typedef NotImplemented IfcSurfaceReinforcementArea; // (not currently used by Assimp) - struct IfcSurfaceStyle; - typedef NotImplemented IfcSurfaceStyleLighting; // (not currently used by Assimp) - typedef NotImplemented IfcSurfaceStyleRefraction; // (not currently used by Assimp) - struct IfcSurfaceStyleShading; - struct IfcSurfaceStyleRendering; - struct IfcSurfaceStyleWithTextures; - struct IfcSweptDiskSolid; - struct IfcSweptDiskSolidPolygonal; - struct IfcSwitchingDevice; - struct IfcSwitchingDeviceType; - struct IfcSystemFurnitureElement; - struct IfcSystemFurnitureElementType; - struct IfcTShapeProfileDef; - typedef NotImplemented IfcTable; // (not currently used by Assimp) - typedef NotImplemented IfcTableColumn; // (not currently used by Assimp) - typedef NotImplemented IfcTableRow; // (not currently used by Assimp) - struct IfcTank; - struct IfcTankType; - struct IfcTask; - typedef NotImplemented IfcTaskTime; // (not currently used by Assimp) - typedef NotImplemented IfcTaskTimeRecurring; // (not currently used by Assimp) - struct IfcTaskType; - typedef NotImplemented IfcTelecomAddress; // (not currently used by Assimp) - struct IfcTendon; - struct IfcTendonAnchor; - struct IfcTendonAnchorType; - struct IfcTendonType; - struct IfcTextLiteral; - struct IfcTextLiteralWithExtent; - typedef NotImplemented IfcTextStyle; // (not currently used by Assimp) - typedef NotImplemented IfcTextStyleFontModel; // (not currently used by Assimp) - typedef NotImplemented IfcTextStyleForDefinedFont; // (not currently used by Assimp) - typedef NotImplemented IfcTextStyleTextModel; // (not currently used by Assimp) - typedef NotImplemented IfcTextureCoordinateGenerator; // (not currently used by Assimp) - typedef NotImplemented IfcTextureMap; // (not currently used by Assimp) - typedef NotImplemented IfcTextureVertex; // (not currently used by Assimp) - typedef NotImplemented IfcTextureVertexList; // (not currently used by Assimp) - typedef NotImplemented IfcTimePeriod; // (not currently used by Assimp) - typedef NotImplemented IfcTimeSeriesValue; // (not currently used by Assimp) - struct IfcTopologyRepresentation; - struct IfcToroidalSurface; - struct IfcTransformer; - struct IfcTransformerType; - struct IfcTransportElement; - struct IfcTransportElementType; - struct IfcTrapeziumProfileDef; - struct IfcTriangulatedFaceSet; - struct IfcTrimmedCurve; - struct IfcTubeBundle; - struct IfcTubeBundleType; - struct IfcUShapeProfileDef; - struct IfcUnitAssignment; - struct IfcUnitaryControlElement; - struct IfcUnitaryControlElementType; - struct IfcUnitaryEquipment; - struct IfcUnitaryEquipmentType; - struct IfcValve; - struct IfcValveType; - struct IfcVector; - struct IfcVertex; - struct IfcVertexLoop; - struct IfcVertexPoint; - struct IfcVibrationIsolator; - struct IfcVibrationIsolatorType; - struct IfcVirtualElement; - typedef NotImplemented IfcVirtualGridIntersection; // (not currently used by Assimp) - struct IfcVoidingFeature; - struct IfcWall; - struct IfcWallElementedCase; - struct IfcWallStandardCase; - struct IfcWallType; - struct IfcWasteTerminal; - struct IfcWasteTerminalType; - struct IfcWindow; - typedef NotImplemented IfcWindowLiningProperties; // (not currently used by Assimp) - typedef NotImplemented IfcWindowPanelProperties; // (not currently used by Assimp) - struct IfcWindowStandardCase; - struct IfcWindowStyle; - struct IfcWindowType; - struct IfcWorkCalendar; - struct IfcWorkControl; - struct IfcWorkPlan; - struct IfcWorkSchedule; - typedef NotImplemented IfcWorkTime; // (not currently used by Assimp) - struct IfcZShapeProfileDef; - struct IfcZone; - - - - // C++ wrapper for IfcRoot - struct IfcRoot : ObjectHelper { IfcRoot() : Object("IfcRoot") {} - IfcGloballyUniqueId::Out GlobalId; - Maybe< Lazy< NotImplemented > > OwnerHistory; - Maybe< IfcLabel::Out > Name; - Maybe< IfcText::Out > Description; - }; - - // C++ wrapper for IfcObjectDefinition - struct IfcObjectDefinition : IfcRoot, ObjectHelper { IfcObjectDefinition() : Object("IfcObjectDefinition") {} - - }; - - // C++ wrapper for IfcObject - struct IfcObject : IfcObjectDefinition, ObjectHelper { IfcObject() : Object("IfcObject") {} - Maybe< IfcLabel::Out > ObjectType; - }; - - // C++ wrapper for IfcControl - struct IfcControl : IfcObject, ObjectHelper { IfcControl() : Object("IfcControl") {} - Maybe< IfcIdentifier::Out > Identification; - }; - - // C++ wrapper for IfcActionRequest - struct IfcActionRequest : IfcControl, ObjectHelper { IfcActionRequest() : Object("IfcActionRequest") {} - Maybe< IfcActionRequestTypeEnum::Out > PredefinedType; - Maybe< IfcLabel::Out > Status; - Maybe< IfcText::Out > LongDescription; - }; - - // C++ wrapper for IfcActor - struct IfcActor : IfcObject, ObjectHelper { IfcActor() : Object("IfcActor") {} - IfcActorSelect::Out TheActor; - }; - - // C++ wrapper for IfcProduct - struct IfcProduct : IfcObject, ObjectHelper { IfcProduct() : Object("IfcProduct") {} - Maybe< Lazy< IfcObjectPlacement > > ObjectPlacement; - Maybe< Lazy< IfcProductRepresentation > > Representation; - }; - - // C++ wrapper for IfcElement - struct IfcElement : IfcProduct, ObjectHelper { IfcElement() : Object("IfcElement") {} - Maybe< IfcIdentifier::Out > Tag; - }; - - // C++ wrapper for IfcDistributionElement - struct IfcDistributionElement : IfcElement, ObjectHelper { IfcDistributionElement() : Object("IfcDistributionElement") {} - - }; - - // C++ wrapper for IfcDistributionControlElement - struct IfcDistributionControlElement : IfcDistributionElement, ObjectHelper { IfcDistributionControlElement() : Object("IfcDistributionControlElement") {} - - }; - - // C++ wrapper for IfcActuator - struct IfcActuator : IfcDistributionControlElement, ObjectHelper { IfcActuator() : Object("IfcActuator") {} - Maybe< IfcActuatorTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcTypeObject - struct IfcTypeObject : IfcObjectDefinition, ObjectHelper { IfcTypeObject() : Object("IfcTypeObject") {} - Maybe< IfcIdentifier::Out > ApplicableOccurrence; - Maybe< ListOf< Lazy< IfcPropertySetDefinition >, 1, 0 > > HasPropertySets; - }; - - // C++ wrapper for IfcTypeProduct - struct IfcTypeProduct : IfcTypeObject, ObjectHelper { IfcTypeProduct() : Object("IfcTypeProduct") {} - Maybe< ListOf< Lazy< IfcRepresentationMap >, 1, 0 > > RepresentationMaps; - Maybe< IfcLabel::Out > Tag; - }; - - // C++ wrapper for IfcElementType - struct IfcElementType : IfcTypeProduct, ObjectHelper { IfcElementType() : Object("IfcElementType") {} - Maybe< IfcLabel::Out > ElementType; - }; - - // C++ wrapper for IfcDistributionElementType - struct IfcDistributionElementType : IfcElementType, ObjectHelper { IfcDistributionElementType() : Object("IfcDistributionElementType") {} - - }; - - // C++ wrapper for IfcDistributionControlElementType - struct IfcDistributionControlElementType : IfcDistributionElementType, ObjectHelper { IfcDistributionControlElementType() : Object("IfcDistributionControlElementType") {} - - }; - - // C++ wrapper for IfcActuatorType - struct IfcActuatorType : IfcDistributionControlElementType, ObjectHelper { IfcActuatorType() : Object("IfcActuatorType") {} - IfcActuatorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcRepresentationItem - struct IfcRepresentationItem : ObjectHelper { IfcRepresentationItem() : Object("IfcRepresentationItem") {} - - }; - - // C++ wrapper for IfcGeometricRepresentationItem - struct IfcGeometricRepresentationItem : IfcRepresentationItem, ObjectHelper { IfcGeometricRepresentationItem() : Object("IfcGeometricRepresentationItem") {} - - }; - - // C++ wrapper for IfcSolidModel - struct IfcSolidModel : IfcGeometricRepresentationItem, ObjectHelper { IfcSolidModel() : Object("IfcSolidModel") {} - - }; - - // C++ wrapper for IfcManifoldSolidBrep - struct IfcManifoldSolidBrep : IfcSolidModel, ObjectHelper { IfcManifoldSolidBrep() : Object("IfcManifoldSolidBrep") {} - Lazy< IfcClosedShell > Outer; - }; - - // C++ wrapper for IfcAdvancedBrep - struct IfcAdvancedBrep : IfcManifoldSolidBrep, ObjectHelper { IfcAdvancedBrep() : Object("IfcAdvancedBrep") {} - - }; - - // C++ wrapper for IfcAdvancedBrepWithVoids - struct IfcAdvancedBrepWithVoids : IfcAdvancedBrep, ObjectHelper { IfcAdvancedBrepWithVoids() : Object("IfcAdvancedBrepWithVoids") {} - ListOf< Lazy< IfcClosedShell >, 1, 0 > Voids; - }; - - // C++ wrapper for IfcTopologicalRepresentationItem - struct IfcTopologicalRepresentationItem : IfcRepresentationItem, ObjectHelper { IfcTopologicalRepresentationItem() : Object("IfcTopologicalRepresentationItem") {} - - }; - - // C++ wrapper for IfcFace - struct IfcFace : IfcTopologicalRepresentationItem, ObjectHelper { IfcFace() : Object("IfcFace") {} - ListOf< Lazy< IfcFaceBound >, 1, 0 > Bounds; - }; - - // C++ wrapper for IfcFaceSurface - struct IfcFaceSurface : IfcFace, ObjectHelper { IfcFaceSurface() : Object("IfcFaceSurface") {} - Lazy< IfcSurface > FaceSurface; - IfcBoolean::Out SameSense; - }; - - // C++ wrapper for IfcAdvancedFace - struct IfcAdvancedFace : IfcFaceSurface, ObjectHelper { IfcAdvancedFace() : Object("IfcAdvancedFace") {} - - }; - - // C++ wrapper for IfcDistributionFlowElement - struct IfcDistributionFlowElement : IfcDistributionElement, ObjectHelper { IfcDistributionFlowElement() : Object("IfcDistributionFlowElement") {} - - }; - - // C++ wrapper for IfcFlowTerminal - struct IfcFlowTerminal : IfcDistributionFlowElement, ObjectHelper { IfcFlowTerminal() : Object("IfcFlowTerminal") {} - - }; - - // C++ wrapper for IfcAirTerminal - struct IfcAirTerminal : IfcFlowTerminal, ObjectHelper { IfcAirTerminal() : Object("IfcAirTerminal") {} - Maybe< IfcAirTerminalTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFlowController - struct IfcFlowController : IfcDistributionFlowElement, ObjectHelper { IfcFlowController() : Object("IfcFlowController") {} - - }; - - // C++ wrapper for IfcAirTerminalBox - struct IfcAirTerminalBox : IfcFlowController, ObjectHelper { IfcAirTerminalBox() : Object("IfcAirTerminalBox") {} - Maybe< IfcAirTerminalBoxTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcDistributionFlowElementType - struct IfcDistributionFlowElementType : IfcDistributionElementType, ObjectHelper { IfcDistributionFlowElementType() : Object("IfcDistributionFlowElementType") {} - - }; - - // C++ wrapper for IfcFlowControllerType - struct IfcFlowControllerType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowControllerType() : Object("IfcFlowControllerType") {} - - }; - - // C++ wrapper for IfcAirTerminalBoxType - struct IfcAirTerminalBoxType : IfcFlowControllerType, ObjectHelper { IfcAirTerminalBoxType() : Object("IfcAirTerminalBoxType") {} - IfcAirTerminalBoxTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowTerminalType - struct IfcFlowTerminalType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowTerminalType() : Object("IfcFlowTerminalType") {} - - }; - - // C++ wrapper for IfcAirTerminalType - struct IfcAirTerminalType : IfcFlowTerminalType, ObjectHelper { IfcAirTerminalType() : Object("IfcAirTerminalType") {} - IfcAirTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcEnergyConversionDevice - struct IfcEnergyConversionDevice : IfcDistributionFlowElement, ObjectHelper { IfcEnergyConversionDevice() : Object("IfcEnergyConversionDevice") {} - - }; - - // C++ wrapper for IfcAirToAirHeatRecovery - struct IfcAirToAirHeatRecovery : IfcEnergyConversionDevice, ObjectHelper { IfcAirToAirHeatRecovery() : Object("IfcAirToAirHeatRecovery") {} - Maybe< IfcAirToAirHeatRecoveryTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcEnergyConversionDeviceType - struct IfcEnergyConversionDeviceType : IfcDistributionFlowElementType, ObjectHelper { IfcEnergyConversionDeviceType() : Object("IfcEnergyConversionDeviceType") {} - - }; - - // C++ wrapper for IfcAirToAirHeatRecoveryType - struct IfcAirToAirHeatRecoveryType : IfcEnergyConversionDeviceType, ObjectHelper { IfcAirToAirHeatRecoveryType() : Object("IfcAirToAirHeatRecoveryType") {} - IfcAirToAirHeatRecoveryTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcAlarm - struct IfcAlarm : IfcDistributionControlElement, ObjectHelper { IfcAlarm() : Object("IfcAlarm") {} - Maybe< IfcAlarmTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcAlarmType - struct IfcAlarmType : IfcDistributionControlElementType, ObjectHelper { IfcAlarmType() : Object("IfcAlarmType") {} - IfcAlarmTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcAnnotation - struct IfcAnnotation : IfcProduct, ObjectHelper { IfcAnnotation() : Object("IfcAnnotation") {} - - }; - - // C++ wrapper for IfcAnnotationFillArea - struct IfcAnnotationFillArea : IfcGeometricRepresentationItem, ObjectHelper { IfcAnnotationFillArea() : Object("IfcAnnotationFillArea") {} - Lazy< IfcCurve > OuterBoundary; - Maybe< ListOf< Lazy< IfcCurve >, 1, 0 > > InnerBoundaries; - }; - - // C++ wrapper for IfcProfileDef - struct IfcProfileDef : ObjectHelper { IfcProfileDef() : Object("IfcProfileDef") {} - IfcProfileTypeEnum::Out ProfileType; - Maybe< IfcLabel::Out > ProfileName; - }; - - // C++ wrapper for IfcArbitraryClosedProfileDef - struct IfcArbitraryClosedProfileDef : IfcProfileDef, ObjectHelper { IfcArbitraryClosedProfileDef() : Object("IfcArbitraryClosedProfileDef") {} - Lazy< IfcCurve > OuterCurve; - }; - - // C++ wrapper for IfcArbitraryOpenProfileDef - struct IfcArbitraryOpenProfileDef : IfcProfileDef, ObjectHelper { IfcArbitraryOpenProfileDef() : Object("IfcArbitraryOpenProfileDef") {} - Lazy< IfcBoundedCurve > Curve; - }; - - // C++ wrapper for IfcArbitraryProfileDefWithVoids - struct IfcArbitraryProfileDefWithVoids : IfcArbitraryClosedProfileDef, ObjectHelper { IfcArbitraryProfileDefWithVoids() : Object("IfcArbitraryProfileDefWithVoids") {} - ListOf< Lazy< IfcCurve >, 1, 0 > InnerCurves; - }; - - // C++ wrapper for IfcGroup - struct IfcGroup : IfcObject, ObjectHelper { IfcGroup() : Object("IfcGroup") {} - - }; - - // C++ wrapper for IfcAsset - struct IfcAsset : IfcGroup, ObjectHelper { IfcAsset() : Object("IfcAsset") {} - Maybe< IfcIdentifier::Out > Identification; - Maybe< Lazy< NotImplemented > > OriginalValue; - Maybe< Lazy< NotImplemented > > CurrentValue; - Maybe< Lazy< NotImplemented > > TotalReplacementCost; - Maybe< IfcActorSelect::Out > Owner; - Maybe< IfcActorSelect::Out > User; - Maybe< Lazy< NotImplemented > > ResponsiblePerson; - Maybe< IfcDate::Out > IncorporationDate; - Maybe< Lazy< NotImplemented > > DepreciatedValue; - }; - - // C++ wrapper for IfcParameterizedProfileDef - struct IfcParameterizedProfileDef : IfcProfileDef, ObjectHelper { IfcParameterizedProfileDef() : Object("IfcParameterizedProfileDef") {} - Maybe< Lazy< IfcAxis2Placement2D > > Position; - }; - - // C++ wrapper for IfcAsymmetricIShapeProfileDef - struct IfcAsymmetricIShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcAsymmetricIShapeProfileDef() : Object("IfcAsymmetricIShapeProfileDef") {} - IfcPositiveLengthMeasure::Out BottomFlangeWidth; - IfcPositiveLengthMeasure::Out OverallDepth; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out BottomFlangeThickness; - Maybe< IfcNonNegativeLengthMeasure::Out > BottomFlangeFilletRadius; - IfcPositiveLengthMeasure::Out TopFlangeWidth; - Maybe< IfcPositiveLengthMeasure::Out > TopFlangeThickness; - Maybe< IfcNonNegativeLengthMeasure::Out > TopFlangeFilletRadius; - Maybe< IfcNonNegativeLengthMeasure::Out > BottomFlangeEdgeRadius; - Maybe< IfcPlaneAngleMeasure::Out > BottomFlangeSlope; - Maybe< IfcNonNegativeLengthMeasure::Out > TopFlangeEdgeRadius; - Maybe< IfcPlaneAngleMeasure::Out > TopFlangeSlope; - }; - - // C++ wrapper for IfcAudioVisualAppliance - struct IfcAudioVisualAppliance : IfcFlowTerminal, ObjectHelper { IfcAudioVisualAppliance() : Object("IfcAudioVisualAppliance") {} - Maybe< IfcAudioVisualApplianceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcAudioVisualApplianceType - struct IfcAudioVisualApplianceType : IfcFlowTerminalType, ObjectHelper { IfcAudioVisualApplianceType() : Object("IfcAudioVisualApplianceType") {} - IfcAudioVisualApplianceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPlacement - struct IfcPlacement : IfcGeometricRepresentationItem, ObjectHelper { IfcPlacement() : Object("IfcPlacement") {} - Lazy< IfcCartesianPoint > Location; - }; - - // C++ wrapper for IfcAxis1Placement - struct IfcAxis1Placement : IfcPlacement, ObjectHelper { IfcAxis1Placement() : Object("IfcAxis1Placement") {} - Maybe< Lazy< IfcDirection > > Axis; - }; - - // C++ wrapper for IfcAxis2Placement2D - struct IfcAxis2Placement2D : IfcPlacement, ObjectHelper { IfcAxis2Placement2D() : Object("IfcAxis2Placement2D") {} - Maybe< Lazy< IfcDirection > > RefDirection; - }; - - // C++ wrapper for IfcAxis2Placement3D - struct IfcAxis2Placement3D : IfcPlacement, ObjectHelper { IfcAxis2Placement3D() : Object("IfcAxis2Placement3D") {} - Maybe< Lazy< IfcDirection > > Axis; - Maybe< Lazy< IfcDirection > > RefDirection; - }; - - // C++ wrapper for IfcCurve - struct IfcCurve : IfcGeometricRepresentationItem, ObjectHelper { IfcCurve() : Object("IfcCurve") {} - - }; - - // C++ wrapper for IfcBoundedCurve - struct IfcBoundedCurve : IfcCurve, ObjectHelper { IfcBoundedCurve() : Object("IfcBoundedCurve") {} - - }; - - // C++ wrapper for IfcBSplineCurve - struct IfcBSplineCurve : IfcBoundedCurve, ObjectHelper { IfcBSplineCurve() : Object("IfcBSplineCurve") {} - IfcInteger::Out Degree; - ListOf< Lazy< IfcCartesianPoint >, 2, 0 > ControlPointsList; - IfcBSplineCurveForm::Out CurveForm; - IfcLogical::Out ClosedCurve; - IfcLogical::Out SelfIntersect; - }; - - // C++ wrapper for IfcBSplineCurveWithKnots - struct IfcBSplineCurveWithKnots : IfcBSplineCurve, ObjectHelper { IfcBSplineCurveWithKnots() : Object("IfcBSplineCurveWithKnots") {} - ListOf< IfcInteger, 2, 0 >::Out KnotMultiplicities; - ListOf< IfcParameterValue, 2, 0 >::Out Knots; - IfcKnotType::Out KnotSpec; - }; - - // C++ wrapper for IfcSurface - struct IfcSurface : IfcGeometricRepresentationItem, ObjectHelper { IfcSurface() : Object("IfcSurface") {} - - }; - - // C++ wrapper for IfcBoundedSurface - struct IfcBoundedSurface : IfcSurface, ObjectHelper { IfcBoundedSurface() : Object("IfcBoundedSurface") {} - - }; - - // C++ wrapper for IfcBSplineSurface - struct IfcBSplineSurface : IfcBoundedSurface, ObjectHelper { IfcBSplineSurface() : Object("IfcBSplineSurface") {} - IfcInteger::Out UDegree; - IfcInteger::Out VDegree; - IfcBSplineSurfaceForm::Out SurfaceForm; - IfcLogical::Out UClosed; - IfcLogical::Out VClosed; - IfcLogical::Out SelfIntersect; - }; - - // C++ wrapper for IfcBSplineSurfaceWithKnots - struct IfcBSplineSurfaceWithKnots : IfcBSplineSurface, ObjectHelper { IfcBSplineSurfaceWithKnots() : Object("IfcBSplineSurfaceWithKnots") {} - ListOf< IfcInteger, 2, 0 >::Out UMultiplicities; - ListOf< IfcInteger, 2, 0 >::Out VMultiplicities; - ListOf< IfcParameterValue, 2, 0 >::Out UKnots; - ListOf< IfcParameterValue, 2, 0 >::Out VKnots; - IfcKnotType::Out KnotSpec; - }; - - // C++ wrapper for IfcBuildingElement - struct IfcBuildingElement : IfcElement, ObjectHelper { IfcBuildingElement() : Object("IfcBuildingElement") {} - - }; - - // C++ wrapper for IfcBeam - struct IfcBeam : IfcBuildingElement, ObjectHelper { IfcBeam() : Object("IfcBeam") {} - Maybe< IfcBeamTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcBeamStandardCase - struct IfcBeamStandardCase : IfcBeam, ObjectHelper { IfcBeamStandardCase() : Object("IfcBeamStandardCase") {} - - }; - - // C++ wrapper for IfcBuildingElementType - struct IfcBuildingElementType : IfcElementType, ObjectHelper { IfcBuildingElementType() : Object("IfcBuildingElementType") {} - - }; - - // C++ wrapper for IfcBeamType - struct IfcBeamType : IfcBuildingElementType, ObjectHelper { IfcBeamType() : Object("IfcBeamType") {} - IfcBeamTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPresentationItem - struct IfcPresentationItem : ObjectHelper { IfcPresentationItem() : Object("IfcPresentationItem") {} - - }; - - // C++ wrapper for IfcCsgPrimitive3D - struct IfcCsgPrimitive3D : IfcGeometricRepresentationItem, ObjectHelper { IfcCsgPrimitive3D() : Object("IfcCsgPrimitive3D") {} - Lazy< IfcAxis2Placement3D > Position; - }; - - // C++ wrapper for IfcBlock - struct IfcBlock : IfcCsgPrimitive3D, ObjectHelper { IfcBlock() : Object("IfcBlock") {} - IfcPositiveLengthMeasure::Out XLength; - IfcPositiveLengthMeasure::Out YLength; - IfcPositiveLengthMeasure::Out ZLength; - }; - - // C++ wrapper for IfcBoiler - struct IfcBoiler : IfcEnergyConversionDevice, ObjectHelper { IfcBoiler() : Object("IfcBoiler") {} - Maybe< IfcBoilerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcBoilerType - struct IfcBoilerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcBoilerType() : Object("IfcBoilerType") {} - IfcBoilerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcBooleanResult - struct IfcBooleanResult : IfcGeometricRepresentationItem, ObjectHelper { IfcBooleanResult() : Object("IfcBooleanResult") {} - IfcBooleanOperator::Out Operator; - IfcBooleanOperand::Out FirstOperand; - IfcBooleanOperand::Out SecondOperand; - }; - - // C++ wrapper for IfcBooleanClippingResult - struct IfcBooleanClippingResult : IfcBooleanResult, ObjectHelper { IfcBooleanClippingResult() : Object("IfcBooleanClippingResult") {} - - }; - - // C++ wrapper for IfcCompositeCurve - struct IfcCompositeCurve : IfcBoundedCurve, ObjectHelper { IfcCompositeCurve() : Object("IfcCompositeCurve") {} - ListOf< Lazy< IfcCompositeCurveSegment >, 1, 0 > Segments; - IfcLogical::Out SelfIntersect; - }; - - // C++ wrapper for IfcCompositeCurveOnSurface - struct IfcCompositeCurveOnSurface : IfcCompositeCurve, ObjectHelper { IfcCompositeCurveOnSurface() : Object("IfcCompositeCurveOnSurface") {} - - }; - - // C++ wrapper for IfcBoundaryCurve - struct IfcBoundaryCurve : IfcCompositeCurveOnSurface, ObjectHelper { IfcBoundaryCurve() : Object("IfcBoundaryCurve") {} - - }; - - // C++ wrapper for IfcBoundingBox - struct IfcBoundingBox : IfcGeometricRepresentationItem, ObjectHelper { IfcBoundingBox() : Object("IfcBoundingBox") {} - Lazy< IfcCartesianPoint > Corner; - IfcPositiveLengthMeasure::Out XDim; - IfcPositiveLengthMeasure::Out YDim; - IfcPositiveLengthMeasure::Out ZDim; - }; - - // C++ wrapper for IfcHalfSpaceSolid - struct IfcHalfSpaceSolid : IfcGeometricRepresentationItem, ObjectHelper { IfcHalfSpaceSolid() : Object("IfcHalfSpaceSolid") {} - Lazy< IfcSurface > BaseSurface; - IfcBoolean::Out AgreementFlag; - }; - - // C++ wrapper for IfcBoxedHalfSpace - struct IfcBoxedHalfSpace : IfcHalfSpaceSolid, ObjectHelper { IfcBoxedHalfSpace() : Object("IfcBoxedHalfSpace") {} - Lazy< IfcBoundingBox > Enclosure; - }; - - // C++ wrapper for IfcSpatialElement - struct IfcSpatialElement : IfcProduct, ObjectHelper { IfcSpatialElement() : Object("IfcSpatialElement") {} - Maybe< IfcLabel::Out > LongName; - }; - - // C++ wrapper for IfcSpatialStructureElement - struct IfcSpatialStructureElement : IfcSpatialElement, ObjectHelper { IfcSpatialStructureElement() : Object("IfcSpatialStructureElement") {} - Maybe< IfcElementCompositionEnum::Out > CompositionType; - }; - - // C++ wrapper for IfcBuilding - struct IfcBuilding : IfcSpatialStructureElement, ObjectHelper { IfcBuilding() : Object("IfcBuilding") {} - Maybe< IfcLengthMeasure::Out > ElevationOfRefHeight; - Maybe< IfcLengthMeasure::Out > ElevationOfTerrain; - Maybe< Lazy< NotImplemented > > BuildingAddress; - }; - - // C++ wrapper for IfcElementComponent - struct IfcElementComponent : IfcElement, ObjectHelper { IfcElementComponent() : Object("IfcElementComponent") {} - - }; - - // C++ wrapper for IfcBuildingElementPart - struct IfcBuildingElementPart : IfcElementComponent, ObjectHelper { IfcBuildingElementPart() : Object("IfcBuildingElementPart") {} - Maybe< IfcBuildingElementPartTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcElementComponentType - struct IfcElementComponentType : IfcElementType, ObjectHelper { IfcElementComponentType() : Object("IfcElementComponentType") {} - - }; - - // C++ wrapper for IfcBuildingElementPartType - struct IfcBuildingElementPartType : IfcElementComponentType, ObjectHelper { IfcBuildingElementPartType() : Object("IfcBuildingElementPartType") {} - IfcBuildingElementPartTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcBuildingElementProxy - struct IfcBuildingElementProxy : IfcBuildingElement, ObjectHelper { IfcBuildingElementProxy() : Object("IfcBuildingElementProxy") {} - Maybe< IfcBuildingElementProxyTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcBuildingElementProxyType - struct IfcBuildingElementProxyType : IfcBuildingElementType, ObjectHelper { IfcBuildingElementProxyType() : Object("IfcBuildingElementProxyType") {} - IfcBuildingElementProxyTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcBuildingStorey - struct IfcBuildingStorey : IfcSpatialStructureElement, ObjectHelper { IfcBuildingStorey() : Object("IfcBuildingStorey") {} - Maybe< IfcLengthMeasure::Out > Elevation; - }; - - // C++ wrapper for IfcSystem - struct IfcSystem : IfcGroup, ObjectHelper { IfcSystem() : Object("IfcSystem") {} - - }; - - // C++ wrapper for IfcBuildingSystem - struct IfcBuildingSystem : IfcSystem, ObjectHelper { IfcBuildingSystem() : Object("IfcBuildingSystem") {} - Maybe< IfcBuildingSystemTypeEnum::Out > PredefinedType; - Maybe< IfcLabel::Out > LongName; - }; - - // C++ wrapper for IfcBurner - struct IfcBurner : IfcEnergyConversionDevice, ObjectHelper { IfcBurner() : Object("IfcBurner") {} - Maybe< IfcBurnerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcBurnerType - struct IfcBurnerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcBurnerType() : Object("IfcBurnerType") {} - IfcBurnerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCShapeProfileDef - struct IfcCShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcCShapeProfileDef() : Object("IfcCShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - IfcPositiveLengthMeasure::Out Width; - IfcPositiveLengthMeasure::Out WallThickness; - IfcPositiveLengthMeasure::Out Girth; - Maybe< IfcNonNegativeLengthMeasure::Out > InternalFilletRadius; - }; - - // C++ wrapper for IfcFlowFitting - struct IfcFlowFitting : IfcDistributionFlowElement, ObjectHelper { IfcFlowFitting() : Object("IfcFlowFitting") {} - - }; - - // C++ wrapper for IfcCableCarrierFitting - struct IfcCableCarrierFitting : IfcFlowFitting, ObjectHelper { IfcCableCarrierFitting() : Object("IfcCableCarrierFitting") {} - Maybe< IfcCableCarrierFittingTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFlowFittingType - struct IfcFlowFittingType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowFittingType() : Object("IfcFlowFittingType") {} - - }; - - // C++ wrapper for IfcCableCarrierFittingType - struct IfcCableCarrierFittingType : IfcFlowFittingType, ObjectHelper { IfcCableCarrierFittingType() : Object("IfcCableCarrierFittingType") {} - IfcCableCarrierFittingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowSegment - struct IfcFlowSegment : IfcDistributionFlowElement, ObjectHelper { IfcFlowSegment() : Object("IfcFlowSegment") {} - - }; - - // C++ wrapper for IfcCableCarrierSegment - struct IfcCableCarrierSegment : IfcFlowSegment, ObjectHelper { IfcCableCarrierSegment() : Object("IfcCableCarrierSegment") {} - Maybe< IfcCableCarrierSegmentTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFlowSegmentType - struct IfcFlowSegmentType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowSegmentType() : Object("IfcFlowSegmentType") {} - - }; - - // C++ wrapper for IfcCableCarrierSegmentType - struct IfcCableCarrierSegmentType : IfcFlowSegmentType, ObjectHelper { IfcCableCarrierSegmentType() : Object("IfcCableCarrierSegmentType") {} - IfcCableCarrierSegmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCableFitting - struct IfcCableFitting : IfcFlowFitting, ObjectHelper { IfcCableFitting() : Object("IfcCableFitting") {} - Maybe< IfcCableFittingTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCableFittingType - struct IfcCableFittingType : IfcFlowFittingType, ObjectHelper { IfcCableFittingType() : Object("IfcCableFittingType") {} - IfcCableFittingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCableSegment - struct IfcCableSegment : IfcFlowSegment, ObjectHelper { IfcCableSegment() : Object("IfcCableSegment") {} - Maybe< IfcCableSegmentTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCableSegmentType - struct IfcCableSegmentType : IfcFlowSegmentType, ObjectHelper { IfcCableSegmentType() : Object("IfcCableSegmentType") {} - IfcCableSegmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPoint - struct IfcPoint : IfcGeometricRepresentationItem, ObjectHelper { IfcPoint() : Object("IfcPoint") {} - - }; - - // C++ wrapper for IfcCartesianPoint - struct IfcCartesianPoint : IfcPoint, ObjectHelper { IfcCartesianPoint() : Object("IfcCartesianPoint") {} - ListOf< IfcLengthMeasure, 1, 3 >::Out Coordinates; - }; - - // C++ wrapper for IfcCartesianPointList - struct IfcCartesianPointList : IfcGeometricRepresentationItem, ObjectHelper { IfcCartesianPointList() : Object("IfcCartesianPointList") {} - - }; - - // C++ wrapper for IfcCartesianPointList2D - struct IfcCartesianPointList2D : IfcCartesianPointList, ObjectHelper { IfcCartesianPointList2D() : Object("IfcCartesianPointList2D") {} - - }; - - // C++ wrapper for IfcCartesianPointList3D - struct IfcCartesianPointList3D : IfcCartesianPointList, ObjectHelper { IfcCartesianPointList3D() : Object("IfcCartesianPointList3D") {} - - }; - - // C++ wrapper for IfcCartesianTransformationOperator - struct IfcCartesianTransformationOperator : IfcGeometricRepresentationItem, ObjectHelper { IfcCartesianTransformationOperator() : Object("IfcCartesianTransformationOperator") {} - Maybe< Lazy< IfcDirection > > Axis1; - Maybe< Lazy< IfcDirection > > Axis2; - Lazy< IfcCartesianPoint > LocalOrigin; - Maybe< IfcReal::Out > Scale; - }; - - // C++ wrapper for IfcCartesianTransformationOperator2D - struct IfcCartesianTransformationOperator2D : IfcCartesianTransformationOperator, ObjectHelper { IfcCartesianTransformationOperator2D() : Object("IfcCartesianTransformationOperator2D") {} - - }; - - // C++ wrapper for IfcCartesianTransformationOperator2DnonUniform - struct IfcCartesianTransformationOperator2DnonUniform : IfcCartesianTransformationOperator2D, ObjectHelper { IfcCartesianTransformationOperator2DnonUniform() : Object("IfcCartesianTransformationOperator2DnonUniform") {} - Maybe< IfcReal::Out > Scale2; - }; - - // C++ wrapper for IfcCartesianTransformationOperator3D - struct IfcCartesianTransformationOperator3D : IfcCartesianTransformationOperator, ObjectHelper { IfcCartesianTransformationOperator3D() : Object("IfcCartesianTransformationOperator3D") {} - Maybe< Lazy< IfcDirection > > Axis3; - }; - - // C++ wrapper for IfcCartesianTransformationOperator3DnonUniform - struct IfcCartesianTransformationOperator3DnonUniform : IfcCartesianTransformationOperator3D, ObjectHelper { IfcCartesianTransformationOperator3DnonUniform() : Object("IfcCartesianTransformationOperator3DnonUniform") {} - Maybe< IfcReal::Out > Scale2; - Maybe< IfcReal::Out > Scale3; - }; - - // C++ wrapper for IfcCenterLineProfileDef - struct IfcCenterLineProfileDef : IfcArbitraryOpenProfileDef, ObjectHelper { IfcCenterLineProfileDef() : Object("IfcCenterLineProfileDef") {} - IfcPositiveLengthMeasure::Out Thickness; - }; - - // C++ wrapper for IfcChiller - struct IfcChiller : IfcEnergyConversionDevice, ObjectHelper { IfcChiller() : Object("IfcChiller") {} - Maybe< IfcChillerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcChillerType - struct IfcChillerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcChillerType() : Object("IfcChillerType") {} - IfcChillerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcChimney - struct IfcChimney : IfcBuildingElement, ObjectHelper { IfcChimney() : Object("IfcChimney") {} - Maybe< IfcChimneyTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcChimneyType - struct IfcChimneyType : IfcBuildingElementType, ObjectHelper { IfcChimneyType() : Object("IfcChimneyType") {} - IfcChimneyTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcConic - struct IfcConic : IfcCurve, ObjectHelper { IfcConic() : Object("IfcConic") {} - IfcAxis2Placement::Out Position; - }; - - // C++ wrapper for IfcCircle - struct IfcCircle : IfcConic, ObjectHelper { IfcCircle() : Object("IfcCircle") {} - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcCircleProfileDef - struct IfcCircleProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcCircleProfileDef() : Object("IfcCircleProfileDef") {} - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcCircleHollowProfileDef - struct IfcCircleHollowProfileDef : IfcCircleProfileDef, ObjectHelper { IfcCircleHollowProfileDef() : Object("IfcCircleHollowProfileDef") {} - IfcPositiveLengthMeasure::Out WallThickness; - }; - - // C++ wrapper for IfcCivilElement - struct IfcCivilElement : IfcElement, ObjectHelper { IfcCivilElement() : Object("IfcCivilElement") {} - - }; - - // C++ wrapper for IfcCivilElementType - struct IfcCivilElementType : IfcElementType, ObjectHelper { IfcCivilElementType() : Object("IfcCivilElementType") {} - - }; - - // C++ wrapper for IfcConnectedFaceSet - struct IfcConnectedFaceSet : IfcTopologicalRepresentationItem, ObjectHelper { IfcConnectedFaceSet() : Object("IfcConnectedFaceSet") {} - ListOf< Lazy< IfcFace >, 1, 0 > CfsFaces; - }; - - // C++ wrapper for IfcClosedShell - struct IfcClosedShell : IfcConnectedFaceSet, ObjectHelper { IfcClosedShell() : Object("IfcClosedShell") {} - - }; - - // C++ wrapper for IfcCoil - struct IfcCoil : IfcEnergyConversionDevice, ObjectHelper { IfcCoil() : Object("IfcCoil") {} - Maybe< IfcCoilTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCoilType - struct IfcCoilType : IfcEnergyConversionDeviceType, ObjectHelper { IfcCoilType() : Object("IfcCoilType") {} - IfcCoilTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcColourSpecification - struct IfcColourSpecification : IfcPresentationItem, ObjectHelper { IfcColourSpecification() : Object("IfcColourSpecification") {} - Maybe< IfcLabel::Out > Name; - }; - - // C++ wrapper for IfcColourRgb - struct IfcColourRgb : IfcColourSpecification, ObjectHelper { IfcColourRgb() : Object("IfcColourRgb") {} - IfcNormalisedRatioMeasure::Out Red; - IfcNormalisedRatioMeasure::Out Green; - IfcNormalisedRatioMeasure::Out Blue; - }; - - // C++ wrapper for IfcColumn - struct IfcColumn : IfcBuildingElement, ObjectHelper { IfcColumn() : Object("IfcColumn") {} - Maybe< IfcColumnTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcColumnStandardCase - struct IfcColumnStandardCase : IfcColumn, ObjectHelper { IfcColumnStandardCase() : Object("IfcColumnStandardCase") {} - - }; - - // C++ wrapper for IfcColumnType - struct IfcColumnType : IfcBuildingElementType, ObjectHelper { IfcColumnType() : Object("IfcColumnType") {} - IfcColumnTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCommunicationsAppliance - struct IfcCommunicationsAppliance : IfcFlowTerminal, ObjectHelper { IfcCommunicationsAppliance() : Object("IfcCommunicationsAppliance") {} - Maybe< IfcCommunicationsApplianceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCommunicationsApplianceType - struct IfcCommunicationsApplianceType : IfcFlowTerminalType, ObjectHelper { IfcCommunicationsApplianceType() : Object("IfcCommunicationsApplianceType") {} - IfcCommunicationsApplianceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPropertyAbstraction - struct IfcPropertyAbstraction : ObjectHelper { IfcPropertyAbstraction() : Object("IfcPropertyAbstraction") {} - - }; - - // C++ wrapper for IfcProperty - struct IfcProperty : IfcPropertyAbstraction, ObjectHelper { IfcProperty() : Object("IfcProperty") {} - IfcIdentifier::Out Name; - Maybe< IfcText::Out > Description; - }; - - // C++ wrapper for IfcComplexProperty - struct IfcComplexProperty : IfcProperty, ObjectHelper { IfcComplexProperty() : Object("IfcComplexProperty") {} - IfcIdentifier::Out UsageName; - ListOf< Lazy< IfcProperty >, 1, 0 > HasProperties; - }; - - // C++ wrapper for IfcPropertyDefinition - struct IfcPropertyDefinition : IfcRoot, ObjectHelper { IfcPropertyDefinition() : Object("IfcPropertyDefinition") {} - - }; - - // C++ wrapper for IfcCompositeCurveSegment - struct IfcCompositeCurveSegment : IfcGeometricRepresentationItem, ObjectHelper { IfcCompositeCurveSegment() : Object("IfcCompositeCurveSegment") {} - IfcTransitionCode::Out Transition; - IfcBoolean::Out SameSense; - Lazy< IfcCurve > ParentCurve; - }; - - // C++ wrapper for IfcCompositeProfileDef - struct IfcCompositeProfileDef : IfcProfileDef, ObjectHelper { IfcCompositeProfileDef() : Object("IfcCompositeProfileDef") {} - ListOf< Lazy< IfcProfileDef >, 2, 0 > Profiles; - Maybe< IfcLabel::Out > Label; - }; - - // C++ wrapper for IfcFlowMovingDevice - struct IfcFlowMovingDevice : IfcDistributionFlowElement, ObjectHelper { IfcFlowMovingDevice() : Object("IfcFlowMovingDevice") {} - - }; - - // C++ wrapper for IfcCompressor - struct IfcCompressor : IfcFlowMovingDevice, ObjectHelper { IfcCompressor() : Object("IfcCompressor") {} - Maybe< IfcCompressorTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFlowMovingDeviceType - struct IfcFlowMovingDeviceType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowMovingDeviceType() : Object("IfcFlowMovingDeviceType") {} - - }; - - // C++ wrapper for IfcCompressorType - struct IfcCompressorType : IfcFlowMovingDeviceType, ObjectHelper { IfcCompressorType() : Object("IfcCompressorType") {} - IfcCompressorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCondenser - struct IfcCondenser : IfcEnergyConversionDevice, ObjectHelper { IfcCondenser() : Object("IfcCondenser") {} - Maybe< IfcCondenserTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCondenserType - struct IfcCondenserType : IfcEnergyConversionDeviceType, ObjectHelper { IfcCondenserType() : Object("IfcCondenserType") {} - IfcCondenserTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcResource - struct IfcResource : IfcObject, ObjectHelper { IfcResource() : Object("IfcResource") {} - Maybe< IfcIdentifier::Out > Identification; - Maybe< IfcText::Out > LongDescription; - }; - - // C++ wrapper for IfcConstructionResource - struct IfcConstructionResource : IfcResource, ObjectHelper { IfcConstructionResource() : Object("IfcConstructionResource") {} - Maybe< Lazy< NotImplemented > > Usage; - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > BaseCosts; - Maybe< Lazy< NotImplemented > > BaseQuantity; - }; - - // C++ wrapper for IfcConstructionEquipmentResource - struct IfcConstructionEquipmentResource : IfcConstructionResource, ObjectHelper { IfcConstructionEquipmentResource() : Object("IfcConstructionEquipmentResource") {} - Maybe< IfcConstructionEquipmentResourceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcTypeResource - struct IfcTypeResource : IfcTypeObject, ObjectHelper { IfcTypeResource() : Object("IfcTypeResource") {} - Maybe< IfcIdentifier::Out > Identification; - Maybe< IfcText::Out > LongDescription; - Maybe< IfcLabel::Out > ResourceType; - }; - - // C++ wrapper for IfcConstructionResourceType - struct IfcConstructionResourceType : IfcTypeResource, ObjectHelper { IfcConstructionResourceType() : Object("IfcConstructionResourceType") {} - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > BaseCosts; - Maybe< Lazy< NotImplemented > > BaseQuantity; - }; - - // C++ wrapper for IfcConstructionEquipmentResourceType - struct IfcConstructionEquipmentResourceType : IfcConstructionResourceType, ObjectHelper { IfcConstructionEquipmentResourceType() : Object("IfcConstructionEquipmentResourceType") {} - IfcConstructionEquipmentResourceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcConstructionMaterialResource - struct IfcConstructionMaterialResource : IfcConstructionResource, ObjectHelper { IfcConstructionMaterialResource() : Object("IfcConstructionMaterialResource") {} - Maybe< IfcConstructionMaterialResourceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcConstructionMaterialResourceType - struct IfcConstructionMaterialResourceType : IfcConstructionResourceType, ObjectHelper { IfcConstructionMaterialResourceType() : Object("IfcConstructionMaterialResourceType") {} - IfcConstructionMaterialResourceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcConstructionProductResource - struct IfcConstructionProductResource : IfcConstructionResource, ObjectHelper { IfcConstructionProductResource() : Object("IfcConstructionProductResource") {} - Maybe< IfcConstructionProductResourceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcConstructionProductResourceType - struct IfcConstructionProductResourceType : IfcConstructionResourceType, ObjectHelper { IfcConstructionProductResourceType() : Object("IfcConstructionProductResourceType") {} - IfcConstructionProductResourceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcContext - struct IfcContext : IfcObjectDefinition, ObjectHelper { IfcContext() : Object("IfcContext") {} - Maybe< IfcLabel::Out > ObjectType; - Maybe< IfcLabel::Out > LongName; - Maybe< IfcLabel::Out > Phase; - Maybe< ListOf< Lazy< IfcRepresentationContext >, 1, 0 > > RepresentationContexts; - Maybe< Lazy< IfcUnitAssignment > > UnitsInContext; - }; - - // C++ wrapper for IfcNamedUnit - struct IfcNamedUnit : ObjectHelper { IfcNamedUnit() : Object("IfcNamedUnit") {} - Lazy< NotImplemented > Dimensions; - IfcUnitEnum::Out UnitType; - }; - - // C++ wrapper for IfcContextDependentUnit - struct IfcContextDependentUnit : IfcNamedUnit, ObjectHelper { IfcContextDependentUnit() : Object("IfcContextDependentUnit") {} - IfcLabel::Out Name; - }; - - // C++ wrapper for IfcController - struct IfcController : IfcDistributionControlElement, ObjectHelper { IfcController() : Object("IfcController") {} - Maybe< IfcControllerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcControllerType - struct IfcControllerType : IfcDistributionControlElementType, ObjectHelper { IfcControllerType() : Object("IfcControllerType") {} - IfcControllerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcConversionBasedUnit - struct IfcConversionBasedUnit : IfcNamedUnit, ObjectHelper { IfcConversionBasedUnit() : Object("IfcConversionBasedUnit") {} - IfcLabel::Out Name; - Lazy< IfcMeasureWithUnit > ConversionFactor; - }; - - // C++ wrapper for IfcConversionBasedUnitWithOffset - struct IfcConversionBasedUnitWithOffset : IfcConversionBasedUnit, ObjectHelper { IfcConversionBasedUnitWithOffset() : Object("IfcConversionBasedUnitWithOffset") {} - IfcReal::Out ConversionOffset; - }; - - // C++ wrapper for IfcCooledBeam - struct IfcCooledBeam : IfcEnergyConversionDevice, ObjectHelper { IfcCooledBeam() : Object("IfcCooledBeam") {} - Maybe< IfcCooledBeamTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCooledBeamType - struct IfcCooledBeamType : IfcEnergyConversionDeviceType, ObjectHelper { IfcCooledBeamType() : Object("IfcCooledBeamType") {} - IfcCooledBeamTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCoolingTower - struct IfcCoolingTower : IfcEnergyConversionDevice, ObjectHelper { IfcCoolingTower() : Object("IfcCoolingTower") {} - Maybe< IfcCoolingTowerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCoolingTowerType - struct IfcCoolingTowerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcCoolingTowerType() : Object("IfcCoolingTowerType") {} - IfcCoolingTowerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCostItem - struct IfcCostItem : IfcControl, ObjectHelper { IfcCostItem() : Object("IfcCostItem") {} - Maybe< IfcCostItemTypeEnum::Out > PredefinedType; - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > CostValues; - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > CostQuantities; - }; - - // C++ wrapper for IfcCostSchedule - struct IfcCostSchedule : IfcControl, ObjectHelper { IfcCostSchedule() : Object("IfcCostSchedule") {} - Maybe< IfcCostScheduleTypeEnum::Out > PredefinedType; - Maybe< IfcLabel::Out > Status; - Maybe< IfcDateTime::Out > SubmittedOn; - Maybe< IfcDateTime::Out > UpdateDate; - }; - - // C++ wrapper for IfcCovering - struct IfcCovering : IfcBuildingElement, ObjectHelper { IfcCovering() : Object("IfcCovering") {} - Maybe< IfcCoveringTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCoveringType - struct IfcCoveringType : IfcBuildingElementType, ObjectHelper { IfcCoveringType() : Object("IfcCoveringType") {} - IfcCoveringTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCrewResource - struct IfcCrewResource : IfcConstructionResource, ObjectHelper { IfcCrewResource() : Object("IfcCrewResource") {} - Maybe< IfcCrewResourceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCrewResourceType - struct IfcCrewResourceType : IfcConstructionResourceType, ObjectHelper { IfcCrewResourceType() : Object("IfcCrewResourceType") {} - IfcCrewResourceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCsgSolid - struct IfcCsgSolid : IfcSolidModel, ObjectHelper { IfcCsgSolid() : Object("IfcCsgSolid") {} - IfcCsgSelect::Out TreeRootExpression; - }; - - // C++ wrapper for IfcCurtainWall - struct IfcCurtainWall : IfcBuildingElement, ObjectHelper { IfcCurtainWall() : Object("IfcCurtainWall") {} - Maybe< IfcCurtainWallTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcCurtainWallType - struct IfcCurtainWallType : IfcBuildingElementType, ObjectHelper { IfcCurtainWallType() : Object("IfcCurtainWallType") {} - IfcCurtainWallTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcCurveBoundedPlane - struct IfcCurveBoundedPlane : IfcBoundedSurface, ObjectHelper { IfcCurveBoundedPlane() : Object("IfcCurveBoundedPlane") {} - Lazy< IfcPlane > BasisSurface; - Lazy< IfcCurve > OuterBoundary; - ListOf< Lazy< IfcCurve >, 0, 0 > InnerBoundaries; - }; - - // C++ wrapper for IfcCurveBoundedSurface - struct IfcCurveBoundedSurface : IfcBoundedSurface, ObjectHelper { IfcCurveBoundedSurface() : Object("IfcCurveBoundedSurface") {} - Lazy< IfcSurface > BasisSurface; - ListOf< Lazy< IfcBoundaryCurve >, 1, 0 > Boundaries; - IfcBoolean::Out ImplicitOuter; - }; - - // C++ wrapper for IfcPresentationStyle - struct IfcPresentationStyle : ObjectHelper { IfcPresentationStyle() : Object("IfcPresentationStyle") {} - Maybe< IfcLabel::Out > Name; - }; - - // C++ wrapper for IfcElementarySurface - struct IfcElementarySurface : IfcSurface, ObjectHelper { IfcElementarySurface() : Object("IfcElementarySurface") {} - Lazy< IfcAxis2Placement3D > Position; - }; - - // C++ wrapper for IfcCylindricalSurface - struct IfcCylindricalSurface : IfcElementarySurface, ObjectHelper { IfcCylindricalSurface() : Object("IfcCylindricalSurface") {} - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcDamper - struct IfcDamper : IfcFlowController, ObjectHelper { IfcDamper() : Object("IfcDamper") {} - Maybe< IfcDamperTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcDamperType - struct IfcDamperType : IfcFlowControllerType, ObjectHelper { IfcDamperType() : Object("IfcDamperType") {} - IfcDamperTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcDerivedProfileDef - struct IfcDerivedProfileDef : IfcProfileDef, ObjectHelper { IfcDerivedProfileDef() : Object("IfcDerivedProfileDef") {} - Lazy< IfcProfileDef > ParentProfile; - Lazy< IfcCartesianTransformationOperator2D > Operator; - Maybe< IfcLabel::Out > Label; - }; - - // C++ wrapper for IfcDirection - struct IfcDirection : IfcGeometricRepresentationItem, ObjectHelper { IfcDirection() : Object("IfcDirection") {} - ListOf< IfcReal, 2, 3 >::Out DirectionRatios; - }; - - // C++ wrapper for IfcDiscreteAccessory - struct IfcDiscreteAccessory : IfcElementComponent, ObjectHelper { IfcDiscreteAccessory() : Object("IfcDiscreteAccessory") {} - Maybe< IfcDiscreteAccessoryTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcDiscreteAccessoryType - struct IfcDiscreteAccessoryType : IfcElementComponentType, ObjectHelper { IfcDiscreteAccessoryType() : Object("IfcDiscreteAccessoryType") {} - IfcDiscreteAccessoryTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcDistributionChamberElement - struct IfcDistributionChamberElement : IfcDistributionFlowElement, ObjectHelper { IfcDistributionChamberElement() : Object("IfcDistributionChamberElement") {} - Maybe< IfcDistributionChamberElementTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcDistributionChamberElementType - struct IfcDistributionChamberElementType : IfcDistributionFlowElementType, ObjectHelper { IfcDistributionChamberElementType() : Object("IfcDistributionChamberElementType") {} - IfcDistributionChamberElementTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcDistributionSystem - struct IfcDistributionSystem : IfcSystem, ObjectHelper { IfcDistributionSystem() : Object("IfcDistributionSystem") {} - Maybe< IfcLabel::Out > LongName; - Maybe< IfcDistributionSystemEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcDistributionCircuit - struct IfcDistributionCircuit : IfcDistributionSystem, ObjectHelper { IfcDistributionCircuit() : Object("IfcDistributionCircuit") {} - - }; - - // C++ wrapper for IfcPort - struct IfcPort : IfcProduct, ObjectHelper { IfcPort() : Object("IfcPort") {} - - }; - - // C++ wrapper for IfcDistributionPort - struct IfcDistributionPort : IfcPort, ObjectHelper { IfcDistributionPort() : Object("IfcDistributionPort") {} - Maybe< IfcFlowDirectionEnum::Out > FlowDirection; - Maybe< IfcDistributionPortTypeEnum::Out > PredefinedType; - Maybe< IfcDistributionSystemEnum::Out > SystemType; - }; - - // C++ wrapper for IfcDoor - struct IfcDoor : IfcBuildingElement, ObjectHelper { IfcDoor() : Object("IfcDoor") {} - Maybe< IfcPositiveLengthMeasure::Out > OverallHeight; - Maybe< IfcPositiveLengthMeasure::Out > OverallWidth; - Maybe< IfcDoorTypeEnum::Out > PredefinedType; - Maybe< IfcDoorTypeOperationEnum::Out > OperationType; - Maybe< IfcLabel::Out > UserDefinedOperationType; - }; - - // C++ wrapper for IfcPropertySetDefinition - struct IfcPropertySetDefinition : IfcPropertyDefinition, ObjectHelper { IfcPropertySetDefinition() : Object("IfcPropertySetDefinition") {} - - }; - - // C++ wrapper for IfcDoorStandardCase - struct IfcDoorStandardCase : IfcDoor, ObjectHelper { IfcDoorStandardCase() : Object("IfcDoorStandardCase") {} - - }; - - // C++ wrapper for IfcDoorStyle - struct IfcDoorStyle : IfcTypeProduct, ObjectHelper { IfcDoorStyle() : Object("IfcDoorStyle") {} - IfcDoorStyleOperationEnum::Out OperationType; - IfcDoorStyleConstructionEnum::Out ConstructionType; - IfcBoolean::Out ParameterTakesPrecedence; - IfcBoolean::Out Sizeable; - }; - - // C++ wrapper for IfcDoorType - struct IfcDoorType : IfcBuildingElementType, ObjectHelper { IfcDoorType() : Object("IfcDoorType") {} - IfcDoorTypeEnum::Out PredefinedType; - IfcDoorTypeOperationEnum::Out OperationType; - Maybe< IfcBoolean::Out > ParameterTakesPrecedence; - Maybe< IfcLabel::Out > UserDefinedOperationType; - }; - - // C++ wrapper for IfcDuctFitting - struct IfcDuctFitting : IfcFlowFitting, ObjectHelper { IfcDuctFitting() : Object("IfcDuctFitting") {} - Maybe< IfcDuctFittingTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcDuctFittingType - struct IfcDuctFittingType : IfcFlowFittingType, ObjectHelper { IfcDuctFittingType() : Object("IfcDuctFittingType") {} - IfcDuctFittingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcDuctSegment - struct IfcDuctSegment : IfcFlowSegment, ObjectHelper { IfcDuctSegment() : Object("IfcDuctSegment") {} - Maybe< IfcDuctSegmentTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcDuctSegmentType - struct IfcDuctSegmentType : IfcFlowSegmentType, ObjectHelper { IfcDuctSegmentType() : Object("IfcDuctSegmentType") {} - IfcDuctSegmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowTreatmentDevice - struct IfcFlowTreatmentDevice : IfcDistributionFlowElement, ObjectHelper { IfcFlowTreatmentDevice() : Object("IfcFlowTreatmentDevice") {} - - }; - - // C++ wrapper for IfcDuctSilencer - struct IfcDuctSilencer : IfcFlowTreatmentDevice, ObjectHelper { IfcDuctSilencer() : Object("IfcDuctSilencer") {} - Maybe< IfcDuctSilencerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFlowTreatmentDeviceType - struct IfcFlowTreatmentDeviceType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowTreatmentDeviceType() : Object("IfcFlowTreatmentDeviceType") {} - - }; - - // C++ wrapper for IfcDuctSilencerType - struct IfcDuctSilencerType : IfcFlowTreatmentDeviceType, ObjectHelper { IfcDuctSilencerType() : Object("IfcDuctSilencerType") {} - IfcDuctSilencerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcEdge - struct IfcEdge : IfcTopologicalRepresentationItem, ObjectHelper { IfcEdge() : Object("IfcEdge") {} - Lazy< IfcVertex > EdgeStart; - Lazy< IfcVertex > EdgeEnd; - }; - - // C++ wrapper for IfcEdgeCurve - struct IfcEdgeCurve : IfcEdge, ObjectHelper { IfcEdgeCurve() : Object("IfcEdgeCurve") {} - Lazy< IfcCurve > EdgeGeometry; - IfcBoolean::Out SameSense; - }; - - // C++ wrapper for IfcLoop - struct IfcLoop : IfcTopologicalRepresentationItem, ObjectHelper { IfcLoop() : Object("IfcLoop") {} - - }; - - // C++ wrapper for IfcEdgeLoop - struct IfcEdgeLoop : IfcLoop, ObjectHelper { IfcEdgeLoop() : Object("IfcEdgeLoop") {} - ListOf< Lazy< IfcOrientedEdge >, 1, 0 > EdgeList; - }; - - // C++ wrapper for IfcElectricAppliance - struct IfcElectricAppliance : IfcFlowTerminal, ObjectHelper { IfcElectricAppliance() : Object("IfcElectricAppliance") {} - Maybe< IfcElectricApplianceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcElectricApplianceType - struct IfcElectricApplianceType : IfcFlowTerminalType, ObjectHelper { IfcElectricApplianceType() : Object("IfcElectricApplianceType") {} - IfcElectricApplianceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElectricDistributionBoard - struct IfcElectricDistributionBoard : IfcFlowController, ObjectHelper { IfcElectricDistributionBoard() : Object("IfcElectricDistributionBoard") {} - Maybe< IfcElectricDistributionBoardTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcElectricDistributionBoardType - struct IfcElectricDistributionBoardType : IfcFlowControllerType, ObjectHelper { IfcElectricDistributionBoardType() : Object("IfcElectricDistributionBoardType") {} - IfcElectricDistributionBoardTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowStorageDevice - struct IfcFlowStorageDevice : IfcDistributionFlowElement, ObjectHelper { IfcFlowStorageDevice() : Object("IfcFlowStorageDevice") {} - - }; - - // C++ wrapper for IfcElectricFlowStorageDevice - struct IfcElectricFlowStorageDevice : IfcFlowStorageDevice, ObjectHelper { IfcElectricFlowStorageDevice() : Object("IfcElectricFlowStorageDevice") {} - Maybe< IfcElectricFlowStorageDeviceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFlowStorageDeviceType - struct IfcFlowStorageDeviceType : IfcDistributionFlowElementType, ObjectHelper { IfcFlowStorageDeviceType() : Object("IfcFlowStorageDeviceType") {} - - }; - - // C++ wrapper for IfcElectricFlowStorageDeviceType - struct IfcElectricFlowStorageDeviceType : IfcFlowStorageDeviceType, ObjectHelper { IfcElectricFlowStorageDeviceType() : Object("IfcElectricFlowStorageDeviceType") {} - IfcElectricFlowStorageDeviceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElectricGenerator - struct IfcElectricGenerator : IfcEnergyConversionDevice, ObjectHelper { IfcElectricGenerator() : Object("IfcElectricGenerator") {} - Maybe< IfcElectricGeneratorTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcElectricGeneratorType - struct IfcElectricGeneratorType : IfcEnergyConversionDeviceType, ObjectHelper { IfcElectricGeneratorType() : Object("IfcElectricGeneratorType") {} - IfcElectricGeneratorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElectricMotor - struct IfcElectricMotor : IfcEnergyConversionDevice, ObjectHelper { IfcElectricMotor() : Object("IfcElectricMotor") {} - Maybe< IfcElectricMotorTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcElectricMotorType - struct IfcElectricMotorType : IfcEnergyConversionDeviceType, ObjectHelper { IfcElectricMotorType() : Object("IfcElectricMotorType") {} - IfcElectricMotorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElectricTimeControl - struct IfcElectricTimeControl : IfcFlowController, ObjectHelper { IfcElectricTimeControl() : Object("IfcElectricTimeControl") {} - Maybe< IfcElectricTimeControlTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcElectricTimeControlType - struct IfcElectricTimeControlType : IfcFlowControllerType, ObjectHelper { IfcElectricTimeControlType() : Object("IfcElectricTimeControlType") {} - IfcElectricTimeControlTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcElementAssembly - struct IfcElementAssembly : IfcElement, ObjectHelper { IfcElementAssembly() : Object("IfcElementAssembly") {} - Maybe< IfcAssemblyPlaceEnum::Out > AssemblyPlace; - Maybe< IfcElementAssemblyTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcElementAssemblyType - struct IfcElementAssemblyType : IfcElementType, ObjectHelper { IfcElementAssemblyType() : Object("IfcElementAssemblyType") {} - IfcElementAssemblyTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcQuantitySet - struct IfcQuantitySet : IfcPropertySetDefinition, ObjectHelper { IfcQuantitySet() : Object("IfcQuantitySet") {} - - }; - - // C++ wrapper for IfcElementQuantity - struct IfcElementQuantity : IfcQuantitySet, ObjectHelper { IfcElementQuantity() : Object("IfcElementQuantity") {} - Maybe< IfcLabel::Out > MethodOfMeasurement; - ListOf< Lazy< NotImplemented >, 1, 0 > Quantities; - }; - - // C++ wrapper for IfcEllipse - struct IfcEllipse : IfcConic, ObjectHelper { IfcEllipse() : Object("IfcEllipse") {} - IfcPositiveLengthMeasure::Out SemiAxis1; - IfcPositiveLengthMeasure::Out SemiAxis2; - }; - - // C++ wrapper for IfcEllipseProfileDef - struct IfcEllipseProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcEllipseProfileDef() : Object("IfcEllipseProfileDef") {} - IfcPositiveLengthMeasure::Out SemiAxis1; - IfcPositiveLengthMeasure::Out SemiAxis2; - }; - - // C++ wrapper for IfcEngine - struct IfcEngine : IfcEnergyConversionDevice, ObjectHelper { IfcEngine() : Object("IfcEngine") {} - Maybe< IfcEngineTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcEngineType - struct IfcEngineType : IfcEnergyConversionDeviceType, ObjectHelper { IfcEngineType() : Object("IfcEngineType") {} - IfcEngineTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcEvaporativeCooler - struct IfcEvaporativeCooler : IfcEnergyConversionDevice, ObjectHelper { IfcEvaporativeCooler() : Object("IfcEvaporativeCooler") {} - Maybe< IfcEvaporativeCoolerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcEvaporativeCoolerType - struct IfcEvaporativeCoolerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcEvaporativeCoolerType() : Object("IfcEvaporativeCoolerType") {} - IfcEvaporativeCoolerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcEvaporator - struct IfcEvaporator : IfcEnergyConversionDevice, ObjectHelper { IfcEvaporator() : Object("IfcEvaporator") {} - Maybe< IfcEvaporatorTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcEvaporatorType - struct IfcEvaporatorType : IfcEnergyConversionDeviceType, ObjectHelper { IfcEvaporatorType() : Object("IfcEvaporatorType") {} - IfcEvaporatorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcProcess - struct IfcProcess : IfcObject, ObjectHelper { IfcProcess() : Object("IfcProcess") {} - Maybe< IfcIdentifier::Out > Identification; - Maybe< IfcText::Out > LongDescription; - }; - - // C++ wrapper for IfcEvent - struct IfcEvent : IfcProcess, ObjectHelper { IfcEvent() : Object("IfcEvent") {} - Maybe< IfcEventTypeEnum::Out > PredefinedType; - Maybe< IfcEventTriggerTypeEnum::Out > EventTriggerType; - Maybe< IfcLabel::Out > UserDefinedEventTriggerType; - Maybe< Lazy< NotImplemented > > EventOccurenceTime; - }; - - // C++ wrapper for IfcTypeProcess - struct IfcTypeProcess : IfcTypeObject, ObjectHelper { IfcTypeProcess() : Object("IfcTypeProcess") {} - Maybe< IfcIdentifier::Out > Identification; - Maybe< IfcText::Out > LongDescription; - Maybe< IfcLabel::Out > ProcessType; - }; - - // C++ wrapper for IfcEventType - struct IfcEventType : IfcTypeProcess, ObjectHelper { IfcEventType() : Object("IfcEventType") {} - IfcEventTypeEnum::Out PredefinedType; - IfcEventTriggerTypeEnum::Out EventTriggerType; - Maybe< IfcLabel::Out > UserDefinedEventTriggerType; - }; - - // C++ wrapper for IfcExternalSpatialStructureElement - struct IfcExternalSpatialStructureElement : IfcSpatialElement, ObjectHelper { IfcExternalSpatialStructureElement() : Object("IfcExternalSpatialStructureElement") {} - - }; - - // C++ wrapper for IfcExternalSpatialElement - struct IfcExternalSpatialElement : IfcExternalSpatialStructureElement, ObjectHelper { IfcExternalSpatialElement() : Object("IfcExternalSpatialElement") {} - Maybe< IfcExternalSpatialElementTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSweptAreaSolid - struct IfcSweptAreaSolid : IfcSolidModel, ObjectHelper { IfcSweptAreaSolid() : Object("IfcSweptAreaSolid") {} - Lazy< IfcProfileDef > SweptArea; - Maybe< Lazy< IfcAxis2Placement3D > > Position; - }; - - // C++ wrapper for IfcExtrudedAreaSolid - struct IfcExtrudedAreaSolid : IfcSweptAreaSolid, ObjectHelper { IfcExtrudedAreaSolid() : Object("IfcExtrudedAreaSolid") {} - Lazy< IfcDirection > ExtrudedDirection; - IfcPositiveLengthMeasure::Out Depth; - }; - - // C++ wrapper for IfcExtrudedAreaSolidTapered - struct IfcExtrudedAreaSolidTapered : IfcExtrudedAreaSolid, ObjectHelper { IfcExtrudedAreaSolidTapered() : Object("IfcExtrudedAreaSolidTapered") {} - Lazy< IfcProfileDef > EndSweptArea; - }; - - // C++ wrapper for IfcFaceBasedSurfaceModel - struct IfcFaceBasedSurfaceModel : IfcGeometricRepresentationItem, ObjectHelper { IfcFaceBasedSurfaceModel() : Object("IfcFaceBasedSurfaceModel") {} - ListOf< Lazy< IfcConnectedFaceSet >, 1, 0 > FbsmFaces; - }; - - // C++ wrapper for IfcFaceBound - struct IfcFaceBound : IfcTopologicalRepresentationItem, ObjectHelper { IfcFaceBound() : Object("IfcFaceBound") {} - Lazy< IfcLoop > Bound; - IfcBoolean::Out Orientation; - }; - - // C++ wrapper for IfcFaceOuterBound - struct IfcFaceOuterBound : IfcFaceBound, ObjectHelper { IfcFaceOuterBound() : Object("IfcFaceOuterBound") {} - - }; - - // C++ wrapper for IfcFacetedBrep - struct IfcFacetedBrep : IfcManifoldSolidBrep, ObjectHelper { IfcFacetedBrep() : Object("IfcFacetedBrep") {} - - }; - - // C++ wrapper for IfcFacetedBrepWithVoids - struct IfcFacetedBrepWithVoids : IfcFacetedBrep, ObjectHelper { IfcFacetedBrepWithVoids() : Object("IfcFacetedBrepWithVoids") {} - ListOf< Lazy< IfcClosedShell >, 1, 0 > Voids; - }; - - // C++ wrapper for IfcFan - struct IfcFan : IfcFlowMovingDevice, ObjectHelper { IfcFan() : Object("IfcFan") {} - Maybe< IfcFanTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFanType - struct IfcFanType : IfcFlowMovingDeviceType, ObjectHelper { IfcFanType() : Object("IfcFanType") {} - IfcFanTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFastener - struct IfcFastener : IfcElementComponent, ObjectHelper { IfcFastener() : Object("IfcFastener") {} - Maybe< IfcFastenerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFastenerType - struct IfcFastenerType : IfcElementComponentType, ObjectHelper { IfcFastenerType() : Object("IfcFastenerType") {} - IfcFastenerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFeatureElement - struct IfcFeatureElement : IfcElement, ObjectHelper { IfcFeatureElement() : Object("IfcFeatureElement") {} - - }; - - // C++ wrapper for IfcFeatureElementAddition - struct IfcFeatureElementAddition : IfcFeatureElement, ObjectHelper { IfcFeatureElementAddition() : Object("IfcFeatureElementAddition") {} - - }; - - // C++ wrapper for IfcFeatureElementSubtraction - struct IfcFeatureElementSubtraction : IfcFeatureElement, ObjectHelper { IfcFeatureElementSubtraction() : Object("IfcFeatureElementSubtraction") {} - - }; - - // C++ wrapper for IfcFillAreaStyleHatching - struct IfcFillAreaStyleHatching : IfcGeometricRepresentationItem, ObjectHelper { IfcFillAreaStyleHatching() : Object("IfcFillAreaStyleHatching") {} - Lazy< NotImplemented > HatchLineAppearance; - IfcHatchLineDistanceSelect::Out StartOfNextHatchLine; - Maybe< Lazy< IfcCartesianPoint > > PointOfReferenceHatchLine; - Maybe< Lazy< IfcCartesianPoint > > PatternStart; - IfcPlaneAngleMeasure::Out HatchLineAngle; - }; - - // C++ wrapper for IfcFillAreaStyleTiles - struct IfcFillAreaStyleTiles : IfcGeometricRepresentationItem, ObjectHelper { IfcFillAreaStyleTiles() : Object("IfcFillAreaStyleTiles") {} - ListOf< Lazy< IfcVector >, 2, 2 > TilingPattern; - ListOf< Lazy< IfcStyledItem >, 1, 0 > Tiles; - IfcPositiveRatioMeasure::Out TilingScale; - }; - - // C++ wrapper for IfcFilter - struct IfcFilter : IfcFlowTreatmentDevice, ObjectHelper { IfcFilter() : Object("IfcFilter") {} - Maybe< IfcFilterTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFilterType - struct IfcFilterType : IfcFlowTreatmentDeviceType, ObjectHelper { IfcFilterType() : Object("IfcFilterType") {} - IfcFilterTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFireSuppressionTerminal - struct IfcFireSuppressionTerminal : IfcFlowTerminal, ObjectHelper { IfcFireSuppressionTerminal() : Object("IfcFireSuppressionTerminal") {} - Maybe< IfcFireSuppressionTerminalTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFireSuppressionTerminalType - struct IfcFireSuppressionTerminalType : IfcFlowTerminalType, ObjectHelper { IfcFireSuppressionTerminalType() : Object("IfcFireSuppressionTerminalType") {} - IfcFireSuppressionTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFixedReferenceSweptAreaSolid - struct IfcFixedReferenceSweptAreaSolid : IfcSweptAreaSolid, ObjectHelper { IfcFixedReferenceSweptAreaSolid() : Object("IfcFixedReferenceSweptAreaSolid") {} - Lazy< IfcCurve > Directrix; - Maybe< IfcParameterValue::Out > StartParam; - Maybe< IfcParameterValue::Out > EndParam; - Lazy< IfcDirection > FixedReference; - }; - - // C++ wrapper for IfcFlowInstrument - struct IfcFlowInstrument : IfcDistributionControlElement, ObjectHelper { IfcFlowInstrument() : Object("IfcFlowInstrument") {} - Maybe< IfcFlowInstrumentTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFlowInstrumentType - struct IfcFlowInstrumentType : IfcDistributionControlElementType, ObjectHelper { IfcFlowInstrumentType() : Object("IfcFlowInstrumentType") {} - IfcFlowInstrumentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFlowMeter - struct IfcFlowMeter : IfcFlowController, ObjectHelper { IfcFlowMeter() : Object("IfcFlowMeter") {} - Maybe< IfcFlowMeterTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFlowMeterType - struct IfcFlowMeterType : IfcFlowControllerType, ObjectHelper { IfcFlowMeterType() : Object("IfcFlowMeterType") {} - IfcFlowMeterTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFooting - struct IfcFooting : IfcBuildingElement, ObjectHelper { IfcFooting() : Object("IfcFooting") {} - Maybe< IfcFootingTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFootingType - struct IfcFootingType : IfcBuildingElementType, ObjectHelper { IfcFootingType() : Object("IfcFootingType") {} - IfcFootingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcFurnishingElement - struct IfcFurnishingElement : IfcElement, ObjectHelper { IfcFurnishingElement() : Object("IfcFurnishingElement") {} - - }; - - // C++ wrapper for IfcFurnishingElementType - struct IfcFurnishingElementType : IfcElementType, ObjectHelper { IfcFurnishingElementType() : Object("IfcFurnishingElementType") {} - - }; - - // C++ wrapper for IfcFurniture - struct IfcFurniture : IfcFurnishingElement, ObjectHelper { IfcFurniture() : Object("IfcFurniture") {} - Maybe< IfcFurnitureTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcFurnitureType - struct IfcFurnitureType : IfcFurnishingElementType, ObjectHelper { IfcFurnitureType() : Object("IfcFurnitureType") {} - IfcAssemblyPlaceEnum::Out AssemblyPlace; - Maybe< IfcFurnitureTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcGeographicElement - struct IfcGeographicElement : IfcElement, ObjectHelper { IfcGeographicElement() : Object("IfcGeographicElement") {} - Maybe< IfcGeographicElementTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcGeographicElementType - struct IfcGeographicElementType : IfcElementType, ObjectHelper { IfcGeographicElementType() : Object("IfcGeographicElementType") {} - IfcGeographicElementTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcGeometricSet - struct IfcGeometricSet : IfcGeometricRepresentationItem, ObjectHelper { IfcGeometricSet() : Object("IfcGeometricSet") {} - ListOf< IfcGeometricSetSelect, 1, 0 >::Out Elements; - }; - - // C++ wrapper for IfcGeometricCurveSet - struct IfcGeometricCurveSet : IfcGeometricSet, ObjectHelper { IfcGeometricCurveSet() : Object("IfcGeometricCurveSet") {} - - }; - - // C++ wrapper for IfcRepresentationContext - struct IfcRepresentationContext : ObjectHelper { IfcRepresentationContext() : Object("IfcRepresentationContext") {} - Maybe< IfcLabel::Out > ContextIdentifier; - Maybe< IfcLabel::Out > ContextType; - }; - - // C++ wrapper for IfcGeometricRepresentationContext - struct IfcGeometricRepresentationContext : IfcRepresentationContext, ObjectHelper { IfcGeometricRepresentationContext() : Object("IfcGeometricRepresentationContext") {} - IfcDimensionCount::Out CoordinateSpaceDimension; - Maybe< IfcReal::Out > Precision; - IfcAxis2Placement::Out WorldCoordinateSystem; - Maybe< Lazy< IfcDirection > > TrueNorth; - }; - - // C++ wrapper for IfcGeometricRepresentationSubContext - struct IfcGeometricRepresentationSubContext : IfcGeometricRepresentationContext, ObjectHelper { IfcGeometricRepresentationSubContext() : Object("IfcGeometricRepresentationSubContext") {} - Lazy< IfcGeometricRepresentationContext > ParentContext; - Maybe< IfcPositiveRatioMeasure::Out > TargetScale; - IfcGeometricProjectionEnum::Out TargetView; - Maybe< IfcLabel::Out > UserDefinedTargetView; - }; - - // C++ wrapper for IfcGrid - struct IfcGrid : IfcProduct, ObjectHelper { IfcGrid() : Object("IfcGrid") {} - ListOf< Lazy< NotImplemented >, 1, 0 > UAxes; - ListOf< Lazy< NotImplemented >, 1, 0 > VAxes; - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > WAxes; - Maybe< IfcGridTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcObjectPlacement - struct IfcObjectPlacement : ObjectHelper { IfcObjectPlacement() : Object("IfcObjectPlacement") {} - - }; - - // C++ wrapper for IfcGridPlacement - struct IfcGridPlacement : IfcObjectPlacement, ObjectHelper { IfcGridPlacement() : Object("IfcGridPlacement") {} - Lazy< NotImplemented > PlacementLocation; - Maybe< IfcGridPlacementDirectionSelect::Out > PlacementRefDirection; - }; - - // C++ wrapper for IfcHeatExchanger - struct IfcHeatExchanger : IfcEnergyConversionDevice, ObjectHelper { IfcHeatExchanger() : Object("IfcHeatExchanger") {} - Maybe< IfcHeatExchangerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcHeatExchangerType - struct IfcHeatExchangerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcHeatExchangerType() : Object("IfcHeatExchangerType") {} - IfcHeatExchangerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcHumidifier - struct IfcHumidifier : IfcEnergyConversionDevice, ObjectHelper { IfcHumidifier() : Object("IfcHumidifier") {} - Maybe< IfcHumidifierTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcHumidifierType - struct IfcHumidifierType : IfcEnergyConversionDeviceType, ObjectHelper { IfcHumidifierType() : Object("IfcHumidifierType") {} - IfcHumidifierTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcIShapeProfileDef - struct IfcIShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcIShapeProfileDef() : Object("IfcIShapeProfileDef") {} - IfcPositiveLengthMeasure::Out OverallWidth; - IfcPositiveLengthMeasure::Out OverallDepth; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out FlangeThickness; - Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius; - Maybe< IfcNonNegativeLengthMeasure::Out > FlangeEdgeRadius; - Maybe< IfcPlaneAngleMeasure::Out > FlangeSlope; - }; - - // C++ wrapper for IfcIndexedPolyCurve - struct IfcIndexedPolyCurve : IfcBoundedCurve, ObjectHelper { IfcIndexedPolyCurve() : Object("IfcIndexedPolyCurve") {} - Lazy< IfcCartesianPointList > Points; - Maybe< ListOf< IfcSegmentIndexSelect, 1, 0 >::Out > Segments; - Maybe< IfcBoolean::Out > SelfIntersect; - }; - - // C++ wrapper for IfcTessellatedItem - struct IfcTessellatedItem : IfcGeometricRepresentationItem, ObjectHelper { IfcTessellatedItem() : Object("IfcTessellatedItem") {} - - }; - - // C++ wrapper for IfcIndexedPolygonalFace - struct IfcIndexedPolygonalFace : IfcTessellatedItem, ObjectHelper { IfcIndexedPolygonalFace() : Object("IfcIndexedPolygonalFace") {} - ListOf< IfcPositiveInteger, 3, 0 >::Out CoordIndex; - }; - - // C++ wrapper for IfcIndexedPolygonalFaceWithVoids - struct IfcIndexedPolygonalFaceWithVoids : IfcIndexedPolygonalFace, ObjectHelper { IfcIndexedPolygonalFaceWithVoids() : Object("IfcIndexedPolygonalFaceWithVoids") {} - - }; - - // C++ wrapper for IfcInterceptor - struct IfcInterceptor : IfcFlowTreatmentDevice, ObjectHelper { IfcInterceptor() : Object("IfcInterceptor") {} - Maybe< IfcInterceptorTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcInterceptorType - struct IfcInterceptorType : IfcFlowTreatmentDeviceType, ObjectHelper { IfcInterceptorType() : Object("IfcInterceptorType") {} - IfcInterceptorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSurfaceCurve - struct IfcSurfaceCurve : IfcCurve, ObjectHelper { IfcSurfaceCurve() : Object("IfcSurfaceCurve") {} - Lazy< IfcCurve > Curve3D; - ListOf< Lazy< IfcPcurve >, 1, 2 > AssociatedGeometry; - IfcPreferredSurfaceCurveRepresentation::Out MasterRepresentation; - }; - - // C++ wrapper for IfcIntersectionCurve - struct IfcIntersectionCurve : IfcSurfaceCurve, ObjectHelper { IfcIntersectionCurve() : Object("IfcIntersectionCurve") {} - - }; - - // C++ wrapper for IfcInventory - struct IfcInventory : IfcGroup, ObjectHelper { IfcInventory() : Object("IfcInventory") {} - Maybe< IfcInventoryTypeEnum::Out > PredefinedType; - Maybe< IfcActorSelect::Out > Jurisdiction; - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > ResponsiblePersons; - Maybe< IfcDate::Out > LastUpdateDate; - Maybe< Lazy< NotImplemented > > CurrentValue; - Maybe< Lazy< NotImplemented > > OriginalValue; - }; - - // C++ wrapper for IfcJunctionBox - struct IfcJunctionBox : IfcFlowFitting, ObjectHelper { IfcJunctionBox() : Object("IfcJunctionBox") {} - Maybe< IfcJunctionBoxTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcJunctionBoxType - struct IfcJunctionBoxType : IfcFlowFittingType, ObjectHelper { IfcJunctionBoxType() : Object("IfcJunctionBoxType") {} - IfcJunctionBoxTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcLShapeProfileDef - struct IfcLShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcLShapeProfileDef() : Object("IfcLShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - Maybe< IfcPositiveLengthMeasure::Out > Width; - IfcPositiveLengthMeasure::Out Thickness; - Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius; - Maybe< IfcNonNegativeLengthMeasure::Out > EdgeRadius; - Maybe< IfcPlaneAngleMeasure::Out > LegSlope; - }; - - // C++ wrapper for IfcLaborResource - struct IfcLaborResource : IfcConstructionResource, ObjectHelper { IfcLaborResource() : Object("IfcLaborResource") {} - Maybe< IfcLaborResourceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcLaborResourceType - struct IfcLaborResourceType : IfcConstructionResourceType, ObjectHelper { IfcLaborResourceType() : Object("IfcLaborResourceType") {} - IfcLaborResourceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcLamp - struct IfcLamp : IfcFlowTerminal, ObjectHelper { IfcLamp() : Object("IfcLamp") {} - Maybe< IfcLampTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcLampType - struct IfcLampType : IfcFlowTerminalType, ObjectHelper { IfcLampType() : Object("IfcLampType") {} - IfcLampTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcLightFixture - struct IfcLightFixture : IfcFlowTerminal, ObjectHelper { IfcLightFixture() : Object("IfcLightFixture") {} - Maybe< IfcLightFixtureTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcLightFixtureType - struct IfcLightFixtureType : IfcFlowTerminalType, ObjectHelper { IfcLightFixtureType() : Object("IfcLightFixtureType") {} - IfcLightFixtureTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcLightSource - struct IfcLightSource : IfcGeometricRepresentationItem, ObjectHelper { IfcLightSource() : Object("IfcLightSource") {} - Maybe< IfcLabel::Out > Name; - Lazy< IfcColourRgb > LightColour; - Maybe< IfcNormalisedRatioMeasure::Out > AmbientIntensity; - Maybe< IfcNormalisedRatioMeasure::Out > Intensity; - }; - - // C++ wrapper for IfcLightSourceAmbient - struct IfcLightSourceAmbient : IfcLightSource, ObjectHelper { IfcLightSourceAmbient() : Object("IfcLightSourceAmbient") {} - - }; - - // C++ wrapper for IfcLightSourceDirectional - struct IfcLightSourceDirectional : IfcLightSource, ObjectHelper { IfcLightSourceDirectional() : Object("IfcLightSourceDirectional") {} - Lazy< IfcDirection > Orientation; - }; - - // C++ wrapper for IfcLightSourceGoniometric - struct IfcLightSourceGoniometric : IfcLightSource, ObjectHelper { IfcLightSourceGoniometric() : Object("IfcLightSourceGoniometric") {} - Lazy< IfcAxis2Placement3D > Position; - Maybe< Lazy< IfcColourRgb > > ColourAppearance; - IfcThermodynamicTemperatureMeasure::Out ColourTemperature; - IfcLuminousFluxMeasure::Out LuminousFlux; - IfcLightEmissionSourceEnum::Out LightEmissionSource; - IfcLightDistributionDataSourceSelect::Out LightDistributionDataSource; - }; - - // C++ wrapper for IfcLightSourcePositional - struct IfcLightSourcePositional : IfcLightSource, ObjectHelper { IfcLightSourcePositional() : Object("IfcLightSourcePositional") {} - Lazy< IfcCartesianPoint > Position; - IfcPositiveLengthMeasure::Out Radius; - IfcReal::Out ConstantAttenuation; - IfcReal::Out DistanceAttenuation; - IfcReal::Out QuadricAttenuation; - }; - - // C++ wrapper for IfcLightSourceSpot - struct IfcLightSourceSpot : IfcLightSourcePositional, ObjectHelper { IfcLightSourceSpot() : Object("IfcLightSourceSpot") {} - Lazy< IfcDirection > Orientation; - Maybe< IfcReal::Out > ConcentrationExponent; - IfcPositivePlaneAngleMeasure::Out SpreadAngle; - IfcPositivePlaneAngleMeasure::Out BeamWidthAngle; - }; - - // C++ wrapper for IfcLine - struct IfcLine : IfcCurve, ObjectHelper { IfcLine() : Object("IfcLine") {} - Lazy< IfcCartesianPoint > Pnt; - Lazy< IfcVector > Dir; - }; - - // C++ wrapper for IfcLocalPlacement - struct IfcLocalPlacement : IfcObjectPlacement, ObjectHelper { IfcLocalPlacement() : Object("IfcLocalPlacement") {} - Maybe< Lazy< IfcObjectPlacement > > PlacementRelTo; - IfcAxis2Placement::Out RelativePlacement; - }; - - // C++ wrapper for IfcMappedItem - struct IfcMappedItem : IfcRepresentationItem, ObjectHelper { IfcMappedItem() : Object("IfcMappedItem") {} - Lazy< IfcRepresentationMap > MappingSource; - Lazy< IfcCartesianTransformationOperator > MappingTarget; - }; - - // C++ wrapper for IfcProductRepresentation - struct IfcProductRepresentation : ObjectHelper { IfcProductRepresentation() : Object("IfcProductRepresentation") {} - Maybe< IfcLabel::Out > Name; - Maybe< IfcText::Out > Description; - ListOf< Lazy< IfcRepresentation >, 1, 0 > Representations; - }; - - // C++ wrapper for IfcMaterialDefinitionRepresentation - struct IfcMaterialDefinitionRepresentation : IfcProductRepresentation, ObjectHelper { IfcMaterialDefinitionRepresentation() : Object("IfcMaterialDefinitionRepresentation") {} - Lazy< NotImplemented > RepresentedMaterial; - }; - - // C++ wrapper for IfcMeasureWithUnit - struct IfcMeasureWithUnit : ObjectHelper { IfcMeasureWithUnit() : Object("IfcMeasureWithUnit") {} - IfcValue::Out ValueComponent; - IfcUnit::Out UnitComponent; - }; - - // C++ wrapper for IfcMechanicalFastener - struct IfcMechanicalFastener : IfcElementComponent, ObjectHelper { IfcMechanicalFastener() : Object("IfcMechanicalFastener") {} - Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter; - Maybe< IfcPositiveLengthMeasure::Out > NominalLength; - Maybe< IfcMechanicalFastenerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcMechanicalFastenerType - struct IfcMechanicalFastenerType : IfcElementComponentType, ObjectHelper { IfcMechanicalFastenerType() : Object("IfcMechanicalFastenerType") {} - IfcMechanicalFastenerTypeEnum::Out PredefinedType; - Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter; - Maybe< IfcPositiveLengthMeasure::Out > NominalLength; - }; - - // C++ wrapper for IfcMedicalDevice - struct IfcMedicalDevice : IfcFlowTerminal, ObjectHelper { IfcMedicalDevice() : Object("IfcMedicalDevice") {} - Maybe< IfcMedicalDeviceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcMedicalDeviceType - struct IfcMedicalDeviceType : IfcFlowTerminalType, ObjectHelper { IfcMedicalDeviceType() : Object("IfcMedicalDeviceType") {} - IfcMedicalDeviceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcMember - struct IfcMember : IfcBuildingElement, ObjectHelper { IfcMember() : Object("IfcMember") {} - Maybe< IfcMemberTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcMemberStandardCase - struct IfcMemberStandardCase : IfcMember, ObjectHelper { IfcMemberStandardCase() : Object("IfcMemberStandardCase") {} - - }; - - // C++ wrapper for IfcMemberType - struct IfcMemberType : IfcBuildingElementType, ObjectHelper { IfcMemberType() : Object("IfcMemberType") {} - IfcMemberTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcMirroredProfileDef - struct IfcMirroredProfileDef : IfcDerivedProfileDef, ObjectHelper { IfcMirroredProfileDef() : Object("IfcMirroredProfileDef") {} - - }; - - // C++ wrapper for IfcMotorConnection - struct IfcMotorConnection : IfcEnergyConversionDevice, ObjectHelper { IfcMotorConnection() : Object("IfcMotorConnection") {} - Maybe< IfcMotorConnectionTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcMotorConnectionType - struct IfcMotorConnectionType : IfcEnergyConversionDeviceType, ObjectHelper { IfcMotorConnectionType() : Object("IfcMotorConnectionType") {} - IfcMotorConnectionTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcOccupant - struct IfcOccupant : IfcActor, ObjectHelper { IfcOccupant() : Object("IfcOccupant") {} - Maybe< IfcOccupantTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcOffsetCurve2D - struct IfcOffsetCurve2D : IfcCurve, ObjectHelper { IfcOffsetCurve2D() : Object("IfcOffsetCurve2D") {} - Lazy< IfcCurve > BasisCurve; - IfcLengthMeasure::Out Distance; - IfcLogical::Out SelfIntersect; - }; - - // C++ wrapper for IfcOffsetCurve3D - struct IfcOffsetCurve3D : IfcCurve, ObjectHelper { IfcOffsetCurve3D() : Object("IfcOffsetCurve3D") {} - Lazy< IfcCurve > BasisCurve; - IfcLengthMeasure::Out Distance; - IfcLogical::Out SelfIntersect; - Lazy< IfcDirection > RefDirection; - }; - - // C++ wrapper for IfcOpenShell - struct IfcOpenShell : IfcConnectedFaceSet, ObjectHelper { IfcOpenShell() : Object("IfcOpenShell") {} - - }; - - // C++ wrapper for IfcOpeningElement - struct IfcOpeningElement : IfcFeatureElementSubtraction, ObjectHelper { IfcOpeningElement() : Object("IfcOpeningElement") {} - Maybe< IfcOpeningElementTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcOpeningStandardCase - struct IfcOpeningStandardCase : IfcOpeningElement, ObjectHelper { IfcOpeningStandardCase() : Object("IfcOpeningStandardCase") {} - - }; - - // C++ wrapper for IfcOrientedEdge - struct IfcOrientedEdge : IfcEdge, ObjectHelper { IfcOrientedEdge() : Object("IfcOrientedEdge") {} - Lazy< IfcEdge > EdgeElement; - IfcBoolean::Out Orientation; - }; - - // C++ wrapper for IfcOuterBoundaryCurve - struct IfcOuterBoundaryCurve : IfcBoundaryCurve, ObjectHelper { IfcOuterBoundaryCurve() : Object("IfcOuterBoundaryCurve") {} - - }; - - // C++ wrapper for IfcOutlet - struct IfcOutlet : IfcFlowTerminal, ObjectHelper { IfcOutlet() : Object("IfcOutlet") {} - Maybe< IfcOutletTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcOutletType - struct IfcOutletType : IfcFlowTerminalType, ObjectHelper { IfcOutletType() : Object("IfcOutletType") {} - IfcOutletTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPath - struct IfcPath : IfcTopologicalRepresentationItem, ObjectHelper { IfcPath() : Object("IfcPath") {} - ListOf< Lazy< IfcOrientedEdge >, 1, 0 > EdgeList; - }; - - // C++ wrapper for IfcPcurve - struct IfcPcurve : IfcCurve, ObjectHelper { IfcPcurve() : Object("IfcPcurve") {} - Lazy< IfcSurface > BasisSurface; - Lazy< IfcCurve > ReferenceCurve; - }; - - // C++ wrapper for IfcPerformanceHistory - struct IfcPerformanceHistory : IfcControl, ObjectHelper { IfcPerformanceHistory() : Object("IfcPerformanceHistory") {} - IfcLabel::Out LifeCyclePhase; - Maybe< IfcPerformanceHistoryTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcPermit - struct IfcPermit : IfcControl, ObjectHelper { IfcPermit() : Object("IfcPermit") {} - Maybe< IfcPermitTypeEnum::Out > PredefinedType; - Maybe< IfcLabel::Out > Status; - Maybe< IfcText::Out > LongDescription; - }; - - // C++ wrapper for IfcPile - struct IfcPile : IfcBuildingElement, ObjectHelper { IfcPile() : Object("IfcPile") {} - Maybe< IfcPileTypeEnum::Out > PredefinedType; - Maybe< IfcPileConstructionEnum::Out > ConstructionType; - }; - - // C++ wrapper for IfcPileType - struct IfcPileType : IfcBuildingElementType, ObjectHelper { IfcPileType() : Object("IfcPileType") {} - IfcPileTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPipeFitting - struct IfcPipeFitting : IfcFlowFitting, ObjectHelper { IfcPipeFitting() : Object("IfcPipeFitting") {} - Maybe< IfcPipeFittingTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcPipeFittingType - struct IfcPipeFittingType : IfcFlowFittingType, ObjectHelper { IfcPipeFittingType() : Object("IfcPipeFittingType") {} - IfcPipeFittingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPipeSegment - struct IfcPipeSegment : IfcFlowSegment, ObjectHelper { IfcPipeSegment() : Object("IfcPipeSegment") {} - Maybe< IfcPipeSegmentTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcPipeSegmentType - struct IfcPipeSegmentType : IfcFlowSegmentType, ObjectHelper { IfcPipeSegmentType() : Object("IfcPipeSegmentType") {} - IfcPipeSegmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPlanarExtent - struct IfcPlanarExtent : IfcGeometricRepresentationItem, ObjectHelper { IfcPlanarExtent() : Object("IfcPlanarExtent") {} - IfcLengthMeasure::Out SizeInX; - IfcLengthMeasure::Out SizeInY; - }; - - // C++ wrapper for IfcPlanarBox - struct IfcPlanarBox : IfcPlanarExtent, ObjectHelper { IfcPlanarBox() : Object("IfcPlanarBox") {} - IfcAxis2Placement::Out Placement; - }; - - // C++ wrapper for IfcPlane - struct IfcPlane : IfcElementarySurface, ObjectHelper { IfcPlane() : Object("IfcPlane") {} - - }; - - // C++ wrapper for IfcPlate - struct IfcPlate : IfcBuildingElement, ObjectHelper { IfcPlate() : Object("IfcPlate") {} - Maybe< IfcPlateTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcPlateStandardCase - struct IfcPlateStandardCase : IfcPlate, ObjectHelper { IfcPlateStandardCase() : Object("IfcPlateStandardCase") {} - - }; - - // C++ wrapper for IfcPlateType - struct IfcPlateType : IfcBuildingElementType, ObjectHelper { IfcPlateType() : Object("IfcPlateType") {} - IfcPlateTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcPointOnCurve - struct IfcPointOnCurve : IfcPoint, ObjectHelper { IfcPointOnCurve() : Object("IfcPointOnCurve") {} - Lazy< IfcCurve > BasisCurve; - IfcParameterValue::Out PointParameter; - }; - - // C++ wrapper for IfcPointOnSurface - struct IfcPointOnSurface : IfcPoint, ObjectHelper { IfcPointOnSurface() : Object("IfcPointOnSurface") {} - Lazy< IfcSurface > BasisSurface; - IfcParameterValue::Out PointParameterU; - IfcParameterValue::Out PointParameterV; - }; - - // C++ wrapper for IfcPolyLoop - struct IfcPolyLoop : IfcLoop, ObjectHelper { IfcPolyLoop() : Object("IfcPolyLoop") {} - ListOf< Lazy< IfcCartesianPoint >, 3, 0 > Polygon; - }; - - // C++ wrapper for IfcPolygonalBoundedHalfSpace - struct IfcPolygonalBoundedHalfSpace : IfcHalfSpaceSolid, ObjectHelper { IfcPolygonalBoundedHalfSpace() : Object("IfcPolygonalBoundedHalfSpace") {} - Lazy< IfcAxis2Placement3D > Position; - Lazy< IfcBoundedCurve > PolygonalBoundary; - }; - - // C++ wrapper for IfcTessellatedFaceSet - struct IfcTessellatedFaceSet : IfcTessellatedItem, ObjectHelper { IfcTessellatedFaceSet() : Object("IfcTessellatedFaceSet") {} - Lazy< IfcCartesianPointList3D > Coordinates; - }; - - // C++ wrapper for IfcPolygonalFaceSet - struct IfcPolygonalFaceSet : IfcTessellatedFaceSet, ObjectHelper { IfcPolygonalFaceSet() : Object("IfcPolygonalFaceSet") {} - Maybe< IfcBoolean::Out > Closed; - ListOf< Lazy< IfcIndexedPolygonalFace >, 1, 0 > Faces; - Maybe< ListOf< IfcPositiveInteger, 1, 0 >::Out > PnIndex; - }; - - // C++ wrapper for IfcPolyline - struct IfcPolyline : IfcBoundedCurve, ObjectHelper { IfcPolyline() : Object("IfcPolyline") {} - ListOf< Lazy< IfcCartesianPoint >, 2, 0 > Points; - }; - - // C++ wrapper for IfcPresentationStyleAssignment - struct IfcPresentationStyleAssignment : ObjectHelper { IfcPresentationStyleAssignment() : Object("IfcPresentationStyleAssignment") {} - ListOf< IfcPresentationStyleSelect, 1, 0 >::Out Styles; - }; - - // C++ wrapper for IfcProcedure - struct IfcProcedure : IfcProcess, ObjectHelper { IfcProcedure() : Object("IfcProcedure") {} - Maybe< IfcProcedureTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcProcedureType - struct IfcProcedureType : IfcTypeProcess, ObjectHelper { IfcProcedureType() : Object("IfcProcedureType") {} - IfcProcedureTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcProductDefinitionShape - struct IfcProductDefinitionShape : IfcProductRepresentation, ObjectHelper { IfcProductDefinitionShape() : Object("IfcProductDefinitionShape") {} - - }; - - // C++ wrapper for IfcProject - struct IfcProject : IfcContext, ObjectHelper { IfcProject() : Object("IfcProject") {} - - }; - - // C++ wrapper for IfcProjectLibrary - struct IfcProjectLibrary : IfcContext, ObjectHelper { IfcProjectLibrary() : Object("IfcProjectLibrary") {} - - }; - - // C++ wrapper for IfcProjectOrder - struct IfcProjectOrder : IfcControl, ObjectHelper { IfcProjectOrder() : Object("IfcProjectOrder") {} - Maybe< IfcProjectOrderTypeEnum::Out > PredefinedType; - Maybe< IfcLabel::Out > Status; - Maybe< IfcText::Out > LongDescription; - }; - - // C++ wrapper for IfcProjectionElement - struct IfcProjectionElement : IfcFeatureElementAddition, ObjectHelper { IfcProjectionElement() : Object("IfcProjectionElement") {} - Maybe< IfcProjectionElementTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSimpleProperty - struct IfcSimpleProperty : IfcProperty, ObjectHelper { IfcSimpleProperty() : Object("IfcSimpleProperty") {} - - }; - - // C++ wrapper for IfcPropertyBoundedValue - struct IfcPropertyBoundedValue : IfcSimpleProperty, ObjectHelper { IfcPropertyBoundedValue() : Object("IfcPropertyBoundedValue") {} - Maybe< IfcValue::Out > UpperBoundValue; - Maybe< IfcValue::Out > LowerBoundValue; - Maybe< IfcUnit::Out > Unit; - Maybe< IfcValue::Out > SetPointValue; - }; - - // C++ wrapper for IfcPropertyEnumeratedValue - struct IfcPropertyEnumeratedValue : IfcSimpleProperty, ObjectHelper { IfcPropertyEnumeratedValue() : Object("IfcPropertyEnumeratedValue") {} - Maybe< ListOf< IfcValue, 1, 0 >::Out > EnumerationValues; - Maybe< Lazy< NotImplemented > > EnumerationReference; - }; - - // C++ wrapper for IfcPropertyListValue - struct IfcPropertyListValue : IfcSimpleProperty, ObjectHelper { IfcPropertyListValue() : Object("IfcPropertyListValue") {} - Maybe< ListOf< IfcValue, 1, 0 >::Out > ListValues; - Maybe< IfcUnit::Out > Unit; - }; - - // C++ wrapper for IfcPropertyReferenceValue - struct IfcPropertyReferenceValue : IfcSimpleProperty, ObjectHelper { IfcPropertyReferenceValue() : Object("IfcPropertyReferenceValue") {} - Maybe< IfcText::Out > UsageName; - Maybe< IfcObjectReferenceSelect::Out > PropertyReference; - }; - - // C++ wrapper for IfcPropertySet - struct IfcPropertySet : IfcPropertySetDefinition, ObjectHelper { IfcPropertySet() : Object("IfcPropertySet") {} - ListOf< Lazy< IfcProperty >, 1, 0 > HasProperties; - }; - - // C++ wrapper for IfcPropertySingleValue - struct IfcPropertySingleValue : IfcSimpleProperty, ObjectHelper { IfcPropertySingleValue() : Object("IfcPropertySingleValue") {} - Maybe< IfcValue::Out > NominalValue; - Maybe< IfcUnit::Out > Unit; - }; - - // C++ wrapper for IfcPropertyTableValue - struct IfcPropertyTableValue : IfcSimpleProperty, ObjectHelper { IfcPropertyTableValue() : Object("IfcPropertyTableValue") {} - Maybe< ListOf< IfcValue, 1, 0 >::Out > DefiningValues; - Maybe< ListOf< IfcValue, 1, 0 >::Out > DefinedValues; - Maybe< IfcText::Out > Expression; - Maybe< IfcUnit::Out > DefiningUnit; - Maybe< IfcUnit::Out > DefinedUnit; - Maybe< IfcCurveInterpolationEnum::Out > CurveInterpolation; - }; - - // C++ wrapper for IfcProtectiveDevice - struct IfcProtectiveDevice : IfcFlowController, ObjectHelper { IfcProtectiveDevice() : Object("IfcProtectiveDevice") {} - Maybe< IfcProtectiveDeviceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcProtectiveDeviceTrippingUnit - struct IfcProtectiveDeviceTrippingUnit : IfcDistributionControlElement, ObjectHelper { IfcProtectiveDeviceTrippingUnit() : Object("IfcProtectiveDeviceTrippingUnit") {} - Maybe< IfcProtectiveDeviceTrippingUnitTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcProtectiveDeviceTrippingUnitType - struct IfcProtectiveDeviceTrippingUnitType : IfcDistributionControlElementType, ObjectHelper { IfcProtectiveDeviceTrippingUnitType() : Object("IfcProtectiveDeviceTrippingUnitType") {} - IfcProtectiveDeviceTrippingUnitTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcProtectiveDeviceType - struct IfcProtectiveDeviceType : IfcFlowControllerType, ObjectHelper { IfcProtectiveDeviceType() : Object("IfcProtectiveDeviceType") {} - IfcProtectiveDeviceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcProxy - struct IfcProxy : IfcProduct, ObjectHelper { IfcProxy() : Object("IfcProxy") {} - IfcObjectTypeEnum::Out ProxyType; - Maybe< IfcLabel::Out > Tag; - }; - - // C++ wrapper for IfcPump - struct IfcPump : IfcFlowMovingDevice, ObjectHelper { IfcPump() : Object("IfcPump") {} - Maybe< IfcPumpTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcPumpType - struct IfcPumpType : IfcFlowMovingDeviceType, ObjectHelper { IfcPumpType() : Object("IfcPumpType") {} - IfcPumpTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcRailing - struct IfcRailing : IfcBuildingElement, ObjectHelper { IfcRailing() : Object("IfcRailing") {} - Maybe< IfcRailingTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcRailingType - struct IfcRailingType : IfcBuildingElementType, ObjectHelper { IfcRailingType() : Object("IfcRailingType") {} - IfcRailingTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcRamp - struct IfcRamp : IfcBuildingElement, ObjectHelper { IfcRamp() : Object("IfcRamp") {} - Maybe< IfcRampTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcRampFlight - struct IfcRampFlight : IfcBuildingElement, ObjectHelper { IfcRampFlight() : Object("IfcRampFlight") {} - Maybe< IfcRampFlightTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcRampFlightType - struct IfcRampFlightType : IfcBuildingElementType, ObjectHelper { IfcRampFlightType() : Object("IfcRampFlightType") {} - IfcRampFlightTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcRampType - struct IfcRampType : IfcBuildingElementType, ObjectHelper { IfcRampType() : Object("IfcRampType") {} - IfcRampTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcRationalBSplineCurveWithKnots - struct IfcRationalBSplineCurveWithKnots : IfcBSplineCurveWithKnots, ObjectHelper { IfcRationalBSplineCurveWithKnots() : Object("IfcRationalBSplineCurveWithKnots") {} - ListOf< IfcReal, 2, 0 >::Out WeightsData; - }; - - // C++ wrapper for IfcRationalBSplineSurfaceWithKnots - struct IfcRationalBSplineSurfaceWithKnots : IfcBSplineSurfaceWithKnots, ObjectHelper { IfcRationalBSplineSurfaceWithKnots() : Object("IfcRationalBSplineSurfaceWithKnots") {} - - }; - - // C++ wrapper for IfcRectangleProfileDef - struct IfcRectangleProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcRectangleProfileDef() : Object("IfcRectangleProfileDef") {} - IfcPositiveLengthMeasure::Out XDim; - IfcPositiveLengthMeasure::Out YDim; - }; - - // C++ wrapper for IfcRectangleHollowProfileDef - struct IfcRectangleHollowProfileDef : IfcRectangleProfileDef, ObjectHelper { IfcRectangleHollowProfileDef() : Object("IfcRectangleHollowProfileDef") {} - IfcPositiveLengthMeasure::Out WallThickness; - Maybe< IfcNonNegativeLengthMeasure::Out > InnerFilletRadius; - Maybe< IfcNonNegativeLengthMeasure::Out > OuterFilletRadius; - }; - - // C++ wrapper for IfcRectangularPyramid - struct IfcRectangularPyramid : IfcCsgPrimitive3D, ObjectHelper { IfcRectangularPyramid() : Object("IfcRectangularPyramid") {} - IfcPositiveLengthMeasure::Out XLength; - IfcPositiveLengthMeasure::Out YLength; - IfcPositiveLengthMeasure::Out Height; - }; - - // C++ wrapper for IfcRectangularTrimmedSurface - struct IfcRectangularTrimmedSurface : IfcBoundedSurface, ObjectHelper { IfcRectangularTrimmedSurface() : Object("IfcRectangularTrimmedSurface") {} - Lazy< IfcSurface > BasisSurface; - IfcParameterValue::Out U1; - IfcParameterValue::Out V1; - IfcParameterValue::Out U2; - IfcParameterValue::Out V2; - IfcBoolean::Out Usense; - IfcBoolean::Out Vsense; - }; - - // C++ wrapper for IfcReinforcingElement - struct IfcReinforcingElement : IfcElementComponent, ObjectHelper { IfcReinforcingElement() : Object("IfcReinforcingElement") {} - Maybe< IfcLabel::Out > SteelGrade; - }; - - // C++ wrapper for IfcReinforcingBar - struct IfcReinforcingBar : IfcReinforcingElement, ObjectHelper { IfcReinforcingBar() : Object("IfcReinforcingBar") {} - Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter; - Maybe< IfcAreaMeasure::Out > CrossSectionArea; - Maybe< IfcPositiveLengthMeasure::Out > BarLength; - Maybe< IfcReinforcingBarTypeEnum::Out > PredefinedType; - Maybe< IfcReinforcingBarSurfaceEnum::Out > BarSurface; - }; - - // C++ wrapper for IfcReinforcingElementType - struct IfcReinforcingElementType : IfcElementComponentType, ObjectHelper { IfcReinforcingElementType() : Object("IfcReinforcingElementType") {} - - }; - - // C++ wrapper for IfcReinforcingBarType - struct IfcReinforcingBarType : IfcReinforcingElementType, ObjectHelper { IfcReinforcingBarType() : Object("IfcReinforcingBarType") {} - IfcReinforcingBarTypeEnum::Out PredefinedType; - Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter; - Maybe< IfcAreaMeasure::Out > CrossSectionArea; - Maybe< IfcPositiveLengthMeasure::Out > BarLength; - Maybe< IfcReinforcingBarSurfaceEnum::Out > BarSurface; - Maybe< IfcLabel::Out > BendingShapeCode; - Maybe< ListOf< IfcBendingParameterSelect, 1, 0 >::Out > BendingParameters; - }; - - // C++ wrapper for IfcReinforcingMesh - struct IfcReinforcingMesh : IfcReinforcingElement, ObjectHelper { IfcReinforcingMesh() : Object("IfcReinforcingMesh") {} - Maybe< IfcPositiveLengthMeasure::Out > MeshLength; - Maybe< IfcPositiveLengthMeasure::Out > MeshWidth; - Maybe< IfcPositiveLengthMeasure::Out > LongitudinalBarNominalDiameter; - Maybe< IfcPositiveLengthMeasure::Out > TransverseBarNominalDiameter; - Maybe< IfcAreaMeasure::Out > LongitudinalBarCrossSectionArea; - Maybe< IfcAreaMeasure::Out > TransverseBarCrossSectionArea; - Maybe< IfcPositiveLengthMeasure::Out > LongitudinalBarSpacing; - Maybe< IfcPositiveLengthMeasure::Out > TransverseBarSpacing; - Maybe< IfcReinforcingMeshTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcReinforcingMeshType - struct IfcReinforcingMeshType : IfcReinforcingElementType, ObjectHelper { IfcReinforcingMeshType() : Object("IfcReinforcingMeshType") {} - IfcReinforcingMeshTypeEnum::Out PredefinedType; - Maybe< IfcPositiveLengthMeasure::Out > MeshLength; - Maybe< IfcPositiveLengthMeasure::Out > MeshWidth; - Maybe< IfcPositiveLengthMeasure::Out > LongitudinalBarNominalDiameter; - Maybe< IfcPositiveLengthMeasure::Out > TransverseBarNominalDiameter; - Maybe< IfcAreaMeasure::Out > LongitudinalBarCrossSectionArea; - Maybe< IfcAreaMeasure::Out > TransverseBarCrossSectionArea; - Maybe< IfcPositiveLengthMeasure::Out > LongitudinalBarSpacing; - Maybe< IfcPositiveLengthMeasure::Out > TransverseBarSpacing; - Maybe< IfcLabel::Out > BendingShapeCode; - Maybe< ListOf< IfcBendingParameterSelect, 1, 0 >::Out > BendingParameters; - }; - - // C++ wrapper for IfcRelationship - struct IfcRelationship : IfcRoot, ObjectHelper { IfcRelationship() : Object("IfcRelationship") {} - - }; - - // C++ wrapper for IfcRelDecomposes - struct IfcRelDecomposes : IfcRelationship, ObjectHelper { IfcRelDecomposes() : Object("IfcRelDecomposes") {} - - }; - - // C++ wrapper for IfcRelAggregates - struct IfcRelAggregates : IfcRelDecomposes, ObjectHelper { IfcRelAggregates() : Object("IfcRelAggregates") {} - Lazy< IfcObjectDefinition > RelatingObject; - ListOf< Lazy< IfcObjectDefinition >, 1, 0 > RelatedObjects; - }; - - // C++ wrapper for IfcRelConnects - struct IfcRelConnects : IfcRelationship, ObjectHelper { IfcRelConnects() : Object("IfcRelConnects") {} - - }; - - // C++ wrapper for IfcRelContainedInSpatialStructure - struct IfcRelContainedInSpatialStructure : IfcRelConnects, ObjectHelper { IfcRelContainedInSpatialStructure() : Object("IfcRelContainedInSpatialStructure") {} - ListOf< Lazy< IfcProduct >, 1, 0 > RelatedElements; - Lazy< IfcSpatialElement > RelatingStructure; - }; - - // C++ wrapper for IfcRelDefines - struct IfcRelDefines : IfcRelationship, ObjectHelper { IfcRelDefines() : Object("IfcRelDefines") {} - - }; - - // C++ wrapper for IfcRelDefinesByProperties - struct IfcRelDefinesByProperties : IfcRelDefines, ObjectHelper { IfcRelDefinesByProperties() : Object("IfcRelDefinesByProperties") {} - ListOf< Lazy< IfcObjectDefinition >, 1, 0 > RelatedObjects; - IfcPropertySetDefinitionSelect::Out RelatingPropertyDefinition; - }; - - // C++ wrapper for IfcRelFillsElement - struct IfcRelFillsElement : IfcRelConnects, ObjectHelper { IfcRelFillsElement() : Object("IfcRelFillsElement") {} - Lazy< IfcOpeningElement > RelatingOpeningElement; - Lazy< IfcElement > RelatedBuildingElement; - }; - - // C++ wrapper for IfcRelVoidsElement - struct IfcRelVoidsElement : IfcRelDecomposes, ObjectHelper { IfcRelVoidsElement() : Object("IfcRelVoidsElement") {} - Lazy< IfcElement > RelatingBuildingElement; - Lazy< IfcFeatureElementSubtraction > RelatedOpeningElement; - }; - - // C++ wrapper for IfcReparametrisedCompositeCurveSegment - struct IfcReparametrisedCompositeCurveSegment : IfcCompositeCurveSegment, ObjectHelper { IfcReparametrisedCompositeCurveSegment() : Object("IfcReparametrisedCompositeCurveSegment") {} - IfcParameterValue::Out ParamLength; - }; - - // C++ wrapper for IfcRepresentation - struct IfcRepresentation : ObjectHelper { IfcRepresentation() : Object("IfcRepresentation") {} - Lazy< IfcRepresentationContext > ContextOfItems; - Maybe< IfcLabel::Out > RepresentationIdentifier; - Maybe< IfcLabel::Out > RepresentationType; - ListOf< Lazy< IfcRepresentationItem >, 1, 0 > Items; - }; - - // C++ wrapper for IfcRepresentationMap - struct IfcRepresentationMap : ObjectHelper { IfcRepresentationMap() : Object("IfcRepresentationMap") {} - IfcAxis2Placement::Out MappingOrigin; - Lazy< IfcRepresentation > MappedRepresentation; - }; - - // C++ wrapper for IfcRevolvedAreaSolid - struct IfcRevolvedAreaSolid : IfcSweptAreaSolid, ObjectHelper { IfcRevolvedAreaSolid() : Object("IfcRevolvedAreaSolid") {} - Lazy< IfcAxis1Placement > Axis; - IfcPlaneAngleMeasure::Out Angle; - }; - - // C++ wrapper for IfcRevolvedAreaSolidTapered - struct IfcRevolvedAreaSolidTapered : IfcRevolvedAreaSolid, ObjectHelper { IfcRevolvedAreaSolidTapered() : Object("IfcRevolvedAreaSolidTapered") {} - Lazy< IfcProfileDef > EndSweptArea; - }; - - // C++ wrapper for IfcRightCircularCone - struct IfcRightCircularCone : IfcCsgPrimitive3D, ObjectHelper { IfcRightCircularCone() : Object("IfcRightCircularCone") {} - IfcPositiveLengthMeasure::Out Height; - IfcPositiveLengthMeasure::Out BottomRadius; - }; - - // C++ wrapper for IfcRightCircularCylinder - struct IfcRightCircularCylinder : IfcCsgPrimitive3D, ObjectHelper { IfcRightCircularCylinder() : Object("IfcRightCircularCylinder") {} - IfcPositiveLengthMeasure::Out Height; - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcRoof - struct IfcRoof : IfcBuildingElement, ObjectHelper { IfcRoof() : Object("IfcRoof") {} - Maybe< IfcRoofTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcRoofType - struct IfcRoofType : IfcBuildingElementType, ObjectHelper { IfcRoofType() : Object("IfcRoofType") {} - IfcRoofTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcRoundedRectangleProfileDef - struct IfcRoundedRectangleProfileDef : IfcRectangleProfileDef, ObjectHelper { IfcRoundedRectangleProfileDef() : Object("IfcRoundedRectangleProfileDef") {} - IfcPositiveLengthMeasure::Out RoundingRadius; - }; - - // C++ wrapper for IfcSIUnit - struct IfcSIUnit : IfcNamedUnit, ObjectHelper { IfcSIUnit() : Object("IfcSIUnit") {} - Maybe< IfcSIPrefix::Out > Prefix; - IfcSIUnitName::Out Name; - }; - - // C++ wrapper for IfcSanitaryTerminal - struct IfcSanitaryTerminal : IfcFlowTerminal, ObjectHelper { IfcSanitaryTerminal() : Object("IfcSanitaryTerminal") {} - Maybe< IfcSanitaryTerminalTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSanitaryTerminalType - struct IfcSanitaryTerminalType : IfcFlowTerminalType, ObjectHelper { IfcSanitaryTerminalType() : Object("IfcSanitaryTerminalType") {} - IfcSanitaryTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSeamCurve - struct IfcSeamCurve : IfcSurfaceCurve, ObjectHelper { IfcSeamCurve() : Object("IfcSeamCurve") {} - - }; - - // C++ wrapper for IfcSectionedSpine - struct IfcSectionedSpine : IfcGeometricRepresentationItem, ObjectHelper { IfcSectionedSpine() : Object("IfcSectionedSpine") {} - Lazy< IfcCompositeCurve > SpineCurve; - ListOf< Lazy< IfcProfileDef >, 2, 0 > CrossSections; - ListOf< Lazy< IfcAxis2Placement3D >, 2, 0 > CrossSectionPositions; - }; - - // C++ wrapper for IfcSensor - struct IfcSensor : IfcDistributionControlElement, ObjectHelper { IfcSensor() : Object("IfcSensor") {} - Maybe< IfcSensorTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSensorType - struct IfcSensorType : IfcDistributionControlElementType, ObjectHelper { IfcSensorType() : Object("IfcSensorType") {} - IfcSensorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcShadingDevice - struct IfcShadingDevice : IfcBuildingElement, ObjectHelper { IfcShadingDevice() : Object("IfcShadingDevice") {} - Maybe< IfcShadingDeviceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcShadingDeviceType - struct IfcShadingDeviceType : IfcBuildingElementType, ObjectHelper { IfcShadingDeviceType() : Object("IfcShadingDeviceType") {} - IfcShadingDeviceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcShapeModel - struct IfcShapeModel : IfcRepresentation, ObjectHelper { IfcShapeModel() : Object("IfcShapeModel") {} - - }; - - // C++ wrapper for IfcShapeRepresentation - struct IfcShapeRepresentation : IfcShapeModel, ObjectHelper { IfcShapeRepresentation() : Object("IfcShapeRepresentation") {} - - }; - - // C++ wrapper for IfcShellBasedSurfaceModel - struct IfcShellBasedSurfaceModel : IfcGeometricRepresentationItem, ObjectHelper { IfcShellBasedSurfaceModel() : Object("IfcShellBasedSurfaceModel") {} - ListOf< IfcShell, 1, 0 >::Out SbsmBoundary; - }; - - // C++ wrapper for IfcSite - struct IfcSite : IfcSpatialStructureElement, ObjectHelper { IfcSite() : Object("IfcSite") {} - Maybe< IfcCompoundPlaneAngleMeasure::Out > RefLatitude; - Maybe< IfcCompoundPlaneAngleMeasure::Out > RefLongitude; - Maybe< IfcLengthMeasure::Out > RefElevation; - Maybe< IfcLabel::Out > LandTitleNumber; - Maybe< Lazy< NotImplemented > > SiteAddress; - }; - - // C++ wrapper for IfcSlab - struct IfcSlab : IfcBuildingElement, ObjectHelper { IfcSlab() : Object("IfcSlab") {} - Maybe< IfcSlabTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSlabElementedCase - struct IfcSlabElementedCase : IfcSlab, ObjectHelper { IfcSlabElementedCase() : Object("IfcSlabElementedCase") {} - - }; - - // C++ wrapper for IfcSlabStandardCase - struct IfcSlabStandardCase : IfcSlab, ObjectHelper { IfcSlabStandardCase() : Object("IfcSlabStandardCase") {} - - }; - - // C++ wrapper for IfcSlabType - struct IfcSlabType : IfcBuildingElementType, ObjectHelper { IfcSlabType() : Object("IfcSlabType") {} - IfcSlabTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSolarDevice - struct IfcSolarDevice : IfcEnergyConversionDevice, ObjectHelper { IfcSolarDevice() : Object("IfcSolarDevice") {} - Maybe< IfcSolarDeviceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSolarDeviceType - struct IfcSolarDeviceType : IfcEnergyConversionDeviceType, ObjectHelper { IfcSolarDeviceType() : Object("IfcSolarDeviceType") {} - IfcSolarDeviceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSpace - struct IfcSpace : IfcSpatialStructureElement, ObjectHelper { IfcSpace() : Object("IfcSpace") {} - Maybe< IfcSpaceTypeEnum::Out > PredefinedType; - Maybe< IfcLengthMeasure::Out > ElevationWithFlooring; - }; - - // C++ wrapper for IfcSpaceHeater - struct IfcSpaceHeater : IfcFlowTerminal, ObjectHelper { IfcSpaceHeater() : Object("IfcSpaceHeater") {} - Maybe< IfcSpaceHeaterTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSpaceHeaterType - struct IfcSpaceHeaterType : IfcFlowTerminalType, ObjectHelper { IfcSpaceHeaterType() : Object("IfcSpaceHeaterType") {} - IfcSpaceHeaterTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSpatialElementType - struct IfcSpatialElementType : IfcTypeProduct, ObjectHelper { IfcSpatialElementType() : Object("IfcSpatialElementType") {} - Maybe< IfcLabel::Out > ElementType; - }; - - // C++ wrapper for IfcSpatialStructureElementType - struct IfcSpatialStructureElementType : IfcSpatialElementType, ObjectHelper { IfcSpatialStructureElementType() : Object("IfcSpatialStructureElementType") {} - - }; - - // C++ wrapper for IfcSpaceType - struct IfcSpaceType : IfcSpatialStructureElementType, ObjectHelper { IfcSpaceType() : Object("IfcSpaceType") {} - IfcSpaceTypeEnum::Out PredefinedType; - Maybe< IfcLabel::Out > LongName; - }; - - // C++ wrapper for IfcSpatialZone - struct IfcSpatialZone : IfcSpatialElement, ObjectHelper { IfcSpatialZone() : Object("IfcSpatialZone") {} - Maybe< IfcSpatialZoneTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSpatialZoneType - struct IfcSpatialZoneType : IfcSpatialElementType, ObjectHelper { IfcSpatialZoneType() : Object("IfcSpatialZoneType") {} - IfcSpatialZoneTypeEnum::Out PredefinedType; - Maybe< IfcLabel::Out > LongName; - }; - - // C++ wrapper for IfcSphere - struct IfcSphere : IfcCsgPrimitive3D, ObjectHelper { IfcSphere() : Object("IfcSphere") {} - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcSphericalSurface - struct IfcSphericalSurface : IfcElementarySurface, ObjectHelper { IfcSphericalSurface() : Object("IfcSphericalSurface") {} - IfcPositiveLengthMeasure::Out Radius; - }; - - // C++ wrapper for IfcStackTerminal - struct IfcStackTerminal : IfcFlowTerminal, ObjectHelper { IfcStackTerminal() : Object("IfcStackTerminal") {} - Maybe< IfcStackTerminalTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcStackTerminalType - struct IfcStackTerminalType : IfcFlowTerminalType, ObjectHelper { IfcStackTerminalType() : Object("IfcStackTerminalType") {} - IfcStackTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStair - struct IfcStair : IfcBuildingElement, ObjectHelper { IfcStair() : Object("IfcStair") {} - Maybe< IfcStairTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcStairFlight - struct IfcStairFlight : IfcBuildingElement, ObjectHelper { IfcStairFlight() : Object("IfcStairFlight") {} - Maybe< IfcInteger::Out > NumberOfRisers; - Maybe< IfcInteger::Out > NumberOfTreads; - Maybe< IfcPositiveLengthMeasure::Out > RiserHeight; - Maybe< IfcPositiveLengthMeasure::Out > TreadLength; - Maybe< IfcStairFlightTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcStairFlightType - struct IfcStairFlightType : IfcBuildingElementType, ObjectHelper { IfcStairFlightType() : Object("IfcStairFlightType") {} - IfcStairFlightTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStairType - struct IfcStairType : IfcBuildingElementType, ObjectHelper { IfcStairType() : Object("IfcStairType") {} - IfcStairTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStructuralActivity - struct IfcStructuralActivity : IfcProduct, ObjectHelper { IfcStructuralActivity() : Object("IfcStructuralActivity") {} - Lazy< NotImplemented > AppliedLoad; - IfcGlobalOrLocalEnum::Out GlobalOrLocal; - }; - - // C++ wrapper for IfcStructuralAction - struct IfcStructuralAction : IfcStructuralActivity, ObjectHelper { IfcStructuralAction() : Object("IfcStructuralAction") {} - Maybe< IfcBoolean::Out > DestabilizingLoad; - }; - - // C++ wrapper for IfcStructuralAnalysisModel - struct IfcStructuralAnalysisModel : IfcSystem, ObjectHelper { IfcStructuralAnalysisModel() : Object("IfcStructuralAnalysisModel") {} - IfcAnalysisModelTypeEnum::Out PredefinedType; - Maybe< Lazy< IfcAxis2Placement3D > > OrientationOf2DPlane; - Maybe< ListOf< Lazy< IfcStructuralLoadGroup >, 1, 0 > > LoadedBy; - Maybe< ListOf< Lazy< IfcStructuralResultGroup >, 1, 0 > > HasResults; - Maybe< Lazy< IfcObjectPlacement > > SharedPlacement; - }; - - // C++ wrapper for IfcStructuralItem - struct IfcStructuralItem : IfcProduct, ObjectHelper { IfcStructuralItem() : Object("IfcStructuralItem") {} - - }; - - // C++ wrapper for IfcStructuralConnection - struct IfcStructuralConnection : IfcStructuralItem, ObjectHelper { IfcStructuralConnection() : Object("IfcStructuralConnection") {} - Maybe< Lazy< NotImplemented > > AppliedCondition; - }; - - // C++ wrapper for IfcStructuralCurveAction - struct IfcStructuralCurveAction : IfcStructuralAction, ObjectHelper { IfcStructuralCurveAction() : Object("IfcStructuralCurveAction") {} - Maybe< IfcProjectedOrTrueLengthEnum::Out > ProjectedOrTrue; - IfcStructuralCurveActivityTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStructuralCurveConnection - struct IfcStructuralCurveConnection : IfcStructuralConnection, ObjectHelper { IfcStructuralCurveConnection() : Object("IfcStructuralCurveConnection") {} - Lazy< IfcDirection > Axis; - }; - - // C++ wrapper for IfcStructuralMember - struct IfcStructuralMember : IfcStructuralItem, ObjectHelper { IfcStructuralMember() : Object("IfcStructuralMember") {} - - }; - - // C++ wrapper for IfcStructuralCurveMember - struct IfcStructuralCurveMember : IfcStructuralMember, ObjectHelper { IfcStructuralCurveMember() : Object("IfcStructuralCurveMember") {} - IfcStructuralCurveMemberTypeEnum::Out PredefinedType; - Lazy< IfcDirection > Axis; - }; - - // C++ wrapper for IfcStructuralCurveMemberVarying - struct IfcStructuralCurveMemberVarying : IfcStructuralCurveMember, ObjectHelper { IfcStructuralCurveMemberVarying() : Object("IfcStructuralCurveMemberVarying") {} - - }; - - // C++ wrapper for IfcStructuralReaction - struct IfcStructuralReaction : IfcStructuralActivity, ObjectHelper { IfcStructuralReaction() : Object("IfcStructuralReaction") {} - - }; - - // C++ wrapper for IfcStructuralCurveReaction - struct IfcStructuralCurveReaction : IfcStructuralReaction, ObjectHelper { IfcStructuralCurveReaction() : Object("IfcStructuralCurveReaction") {} - IfcStructuralCurveActivityTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStructuralLinearAction - struct IfcStructuralLinearAction : IfcStructuralCurveAction, ObjectHelper { IfcStructuralLinearAction() : Object("IfcStructuralLinearAction") {} - - }; - - // C++ wrapper for IfcStructuralLoadGroup - struct IfcStructuralLoadGroup : IfcGroup, ObjectHelper { IfcStructuralLoadGroup() : Object("IfcStructuralLoadGroup") {} - IfcLoadGroupTypeEnum::Out PredefinedType; - IfcActionTypeEnum::Out ActionType; - IfcActionSourceTypeEnum::Out ActionSource; - Maybe< IfcRatioMeasure::Out > Coefficient; - Maybe< IfcLabel::Out > Purpose; - }; - - // C++ wrapper for IfcStructuralLoadCase - struct IfcStructuralLoadCase : IfcStructuralLoadGroup, ObjectHelper { IfcStructuralLoadCase() : Object("IfcStructuralLoadCase") {} - Maybe< ListOf< IfcRatioMeasure, 3, 3 >::Out > SelfWeightCoefficients; - }; - - // C++ wrapper for IfcStructuralSurfaceAction - struct IfcStructuralSurfaceAction : IfcStructuralAction, ObjectHelper { IfcStructuralSurfaceAction() : Object("IfcStructuralSurfaceAction") {} - Maybe< IfcProjectedOrTrueLengthEnum::Out > ProjectedOrTrue; - IfcStructuralSurfaceActivityTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStructuralPlanarAction - struct IfcStructuralPlanarAction : IfcStructuralSurfaceAction, ObjectHelper { IfcStructuralPlanarAction() : Object("IfcStructuralPlanarAction") {} - - }; - - // C++ wrapper for IfcStructuralPointAction - struct IfcStructuralPointAction : IfcStructuralAction, ObjectHelper { IfcStructuralPointAction() : Object("IfcStructuralPointAction") {} - - }; - - // C++ wrapper for IfcStructuralPointConnection - struct IfcStructuralPointConnection : IfcStructuralConnection, ObjectHelper { IfcStructuralPointConnection() : Object("IfcStructuralPointConnection") {} - Maybe< Lazy< IfcAxis2Placement3D > > ConditionCoordinateSystem; - }; - - // C++ wrapper for IfcStructuralPointReaction - struct IfcStructuralPointReaction : IfcStructuralReaction, ObjectHelper { IfcStructuralPointReaction() : Object("IfcStructuralPointReaction") {} - - }; - - // C++ wrapper for IfcStructuralResultGroup - struct IfcStructuralResultGroup : IfcGroup, ObjectHelper { IfcStructuralResultGroup() : Object("IfcStructuralResultGroup") {} - IfcAnalysisTheoryTypeEnum::Out TheoryType; - Maybe< Lazy< IfcStructuralLoadGroup > > ResultForLoadGroup; - IfcBoolean::Out IsLinear; - }; - - // C++ wrapper for IfcStructuralSurfaceConnection - struct IfcStructuralSurfaceConnection : IfcStructuralConnection, ObjectHelper { IfcStructuralSurfaceConnection() : Object("IfcStructuralSurfaceConnection") {} - - }; - - // C++ wrapper for IfcStructuralSurfaceMember - struct IfcStructuralSurfaceMember : IfcStructuralMember, ObjectHelper { IfcStructuralSurfaceMember() : Object("IfcStructuralSurfaceMember") {} - IfcStructuralSurfaceMemberTypeEnum::Out PredefinedType; - Maybe< IfcPositiveLengthMeasure::Out > Thickness; - }; - - // C++ wrapper for IfcStructuralSurfaceMemberVarying - struct IfcStructuralSurfaceMemberVarying : IfcStructuralSurfaceMember, ObjectHelper { IfcStructuralSurfaceMemberVarying() : Object("IfcStructuralSurfaceMemberVarying") {} - - }; - - // C++ wrapper for IfcStructuralSurfaceReaction - struct IfcStructuralSurfaceReaction : IfcStructuralReaction, ObjectHelper { IfcStructuralSurfaceReaction() : Object("IfcStructuralSurfaceReaction") {} - IfcStructuralSurfaceActivityTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcStyleModel - struct IfcStyleModel : IfcRepresentation, ObjectHelper { IfcStyleModel() : Object("IfcStyleModel") {} - - }; - - // C++ wrapper for IfcStyledItem - struct IfcStyledItem : IfcRepresentationItem, ObjectHelper { IfcStyledItem() : Object("IfcStyledItem") {} - Maybe< Lazy< IfcRepresentationItem > > Item; - ListOf< IfcStyleAssignmentSelect, 1, 0 >::Out Styles; - Maybe< IfcLabel::Out > Name; - }; - - // C++ wrapper for IfcStyledRepresentation - struct IfcStyledRepresentation : IfcStyleModel, ObjectHelper { IfcStyledRepresentation() : Object("IfcStyledRepresentation") {} - - }; - - // C++ wrapper for IfcSubContractResource - struct IfcSubContractResource : IfcConstructionResource, ObjectHelper { IfcSubContractResource() : Object("IfcSubContractResource") {} - Maybe< IfcSubContractResourceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSubContractResourceType - struct IfcSubContractResourceType : IfcConstructionResourceType, ObjectHelper { IfcSubContractResourceType() : Object("IfcSubContractResourceType") {} - IfcSubContractResourceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSubedge - struct IfcSubedge : IfcEdge, ObjectHelper { IfcSubedge() : Object("IfcSubedge") {} - Lazy< IfcEdge > ParentEdge; - }; - - // C++ wrapper for IfcSurfaceCurveSweptAreaSolid - struct IfcSurfaceCurveSweptAreaSolid : IfcSweptAreaSolid, ObjectHelper { IfcSurfaceCurveSweptAreaSolid() : Object("IfcSurfaceCurveSweptAreaSolid") {} - Lazy< IfcCurve > Directrix; - Maybe< IfcParameterValue::Out > StartParam; - Maybe< IfcParameterValue::Out > EndParam; - Lazy< IfcSurface > ReferenceSurface; - }; - - // C++ wrapper for IfcSurfaceFeature - struct IfcSurfaceFeature : IfcFeatureElement, ObjectHelper { IfcSurfaceFeature() : Object("IfcSurfaceFeature") {} - Maybe< IfcSurfaceFeatureTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSweptSurface - struct IfcSweptSurface : IfcSurface, ObjectHelper { IfcSweptSurface() : Object("IfcSweptSurface") {} - Lazy< IfcProfileDef > SweptCurve; - Maybe< Lazy< IfcAxis2Placement3D > > Position; - }; - - // C++ wrapper for IfcSurfaceOfLinearExtrusion - struct IfcSurfaceOfLinearExtrusion : IfcSweptSurface, ObjectHelper { IfcSurfaceOfLinearExtrusion() : Object("IfcSurfaceOfLinearExtrusion") {} - Lazy< IfcDirection > ExtrudedDirection; - IfcLengthMeasure::Out Depth; - }; - - // C++ wrapper for IfcSurfaceOfRevolution - struct IfcSurfaceOfRevolution : IfcSweptSurface, ObjectHelper { IfcSurfaceOfRevolution() : Object("IfcSurfaceOfRevolution") {} - Lazy< IfcAxis1Placement > AxisPosition; - }; - - // C++ wrapper for IfcSurfaceStyle - struct IfcSurfaceStyle : IfcPresentationStyle, ObjectHelper { IfcSurfaceStyle() : Object("IfcSurfaceStyle") {} - IfcSurfaceSide::Out Side; - ListOf< IfcSurfaceStyleElementSelect, 1, 5 >::Out Styles; - }; - - // C++ wrapper for IfcSurfaceStyleShading - struct IfcSurfaceStyleShading : IfcPresentationItem, ObjectHelper { IfcSurfaceStyleShading() : Object("IfcSurfaceStyleShading") {} - Lazy< IfcColourRgb > SurfaceColour; - Maybe< IfcNormalisedRatioMeasure::Out > Transparency; - }; - - // C++ wrapper for IfcSurfaceStyleRendering - struct IfcSurfaceStyleRendering : IfcSurfaceStyleShading, ObjectHelper { IfcSurfaceStyleRendering() : Object("IfcSurfaceStyleRendering") {} - Maybe< IfcColourOrFactor::Out > DiffuseColour; - Maybe< IfcColourOrFactor::Out > TransmissionColour; - Maybe< IfcColourOrFactor::Out > DiffuseTransmissionColour; - Maybe< IfcColourOrFactor::Out > ReflectionColour; - Maybe< IfcColourOrFactor::Out > SpecularColour; - Maybe< IfcSpecularHighlightSelect::Out > SpecularHighlight; - IfcReflectanceMethodEnum::Out ReflectanceMethod; - }; - - // C++ wrapper for IfcSurfaceStyleWithTextures - struct IfcSurfaceStyleWithTextures : IfcPresentationItem, ObjectHelper { IfcSurfaceStyleWithTextures() : Object("IfcSurfaceStyleWithTextures") {} - ListOf< Lazy< NotImplemented >, 1, 0 > Textures; - }; - - // C++ wrapper for IfcSweptDiskSolid - struct IfcSweptDiskSolid : IfcSolidModel, ObjectHelper { IfcSweptDiskSolid() : Object("IfcSweptDiskSolid") {} - Lazy< IfcCurve > Directrix; - IfcPositiveLengthMeasure::Out Radius; - Maybe< IfcPositiveLengthMeasure::Out > InnerRadius; - Maybe< IfcParameterValue::Out > StartParam; - Maybe< IfcParameterValue::Out > EndParam; - }; - - // C++ wrapper for IfcSweptDiskSolidPolygonal - struct IfcSweptDiskSolidPolygonal : IfcSweptDiskSolid, ObjectHelper { IfcSweptDiskSolidPolygonal() : Object("IfcSweptDiskSolidPolygonal") {} - Maybe< IfcPositiveLengthMeasure::Out > FilletRadius; - }; - - // C++ wrapper for IfcSwitchingDevice - struct IfcSwitchingDevice : IfcFlowController, ObjectHelper { IfcSwitchingDevice() : Object("IfcSwitchingDevice") {} - Maybe< IfcSwitchingDeviceTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSwitchingDeviceType - struct IfcSwitchingDeviceType : IfcFlowControllerType, ObjectHelper { IfcSwitchingDeviceType() : Object("IfcSwitchingDeviceType") {} - IfcSwitchingDeviceTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcSystemFurnitureElement - struct IfcSystemFurnitureElement : IfcFurnishingElement, ObjectHelper { IfcSystemFurnitureElement() : Object("IfcSystemFurnitureElement") {} - Maybe< IfcSystemFurnitureElementTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcSystemFurnitureElementType - struct IfcSystemFurnitureElementType : IfcFurnishingElementType, ObjectHelper { IfcSystemFurnitureElementType() : Object("IfcSystemFurnitureElementType") {} - Maybe< IfcSystemFurnitureElementTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcTShapeProfileDef - struct IfcTShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcTShapeProfileDef() : Object("IfcTShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - IfcPositiveLengthMeasure::Out FlangeWidth; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out FlangeThickness; - Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius; - Maybe< IfcNonNegativeLengthMeasure::Out > FlangeEdgeRadius; - Maybe< IfcNonNegativeLengthMeasure::Out > WebEdgeRadius; - Maybe< IfcPlaneAngleMeasure::Out > WebSlope; - Maybe< IfcPlaneAngleMeasure::Out > FlangeSlope; - }; - - // C++ wrapper for IfcTank - struct IfcTank : IfcFlowStorageDevice, ObjectHelper { IfcTank() : Object("IfcTank") {} - Maybe< IfcTankTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcTankType - struct IfcTankType : IfcFlowStorageDeviceType, ObjectHelper { IfcTankType() : Object("IfcTankType") {} - IfcTankTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcTask - struct IfcTask : IfcProcess, ObjectHelper { IfcTask() : Object("IfcTask") {} - Maybe< IfcLabel::Out > Status; - Maybe< IfcLabel::Out > WorkMethod; - IfcBoolean::Out IsMilestone; - Maybe< IfcInteger::Out > Priority; - Maybe< Lazy< NotImplemented > > TaskTime; - Maybe< IfcTaskTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcTaskType - struct IfcTaskType : IfcTypeProcess, ObjectHelper { IfcTaskType() : Object("IfcTaskType") {} - IfcTaskTypeEnum::Out PredefinedType; - Maybe< IfcLabel::Out > WorkMethod; - }; - - // C++ wrapper for IfcTendon - struct IfcTendon : IfcReinforcingElement, ObjectHelper { IfcTendon() : Object("IfcTendon") {} - Maybe< IfcTendonTypeEnum::Out > PredefinedType; - Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter; - Maybe< IfcAreaMeasure::Out > CrossSectionArea; - Maybe< IfcForceMeasure::Out > TensionForce; - Maybe< IfcPressureMeasure::Out > PreStress; - Maybe< IfcNormalisedRatioMeasure::Out > FrictionCoefficient; - Maybe< IfcPositiveLengthMeasure::Out > AnchorageSlip; - Maybe< IfcPositiveLengthMeasure::Out > MinCurvatureRadius; - }; - - // C++ wrapper for IfcTendonAnchor - struct IfcTendonAnchor : IfcReinforcingElement, ObjectHelper { IfcTendonAnchor() : Object("IfcTendonAnchor") {} - Maybe< IfcTendonAnchorTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcTendonAnchorType - struct IfcTendonAnchorType : IfcReinforcingElementType, ObjectHelper { IfcTendonAnchorType() : Object("IfcTendonAnchorType") {} - IfcTendonAnchorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcTendonType - struct IfcTendonType : IfcReinforcingElementType, ObjectHelper { IfcTendonType() : Object("IfcTendonType") {} - IfcTendonTypeEnum::Out PredefinedType; - Maybe< IfcPositiveLengthMeasure::Out > NominalDiameter; - Maybe< IfcAreaMeasure::Out > CrossSectionArea; - Maybe< IfcPositiveLengthMeasure::Out > SheathDiameter; - }; - - // C++ wrapper for IfcTextLiteral - struct IfcTextLiteral : IfcGeometricRepresentationItem, ObjectHelper { IfcTextLiteral() : Object("IfcTextLiteral") {} - IfcPresentableText::Out Literal; - IfcAxis2Placement::Out Placement; - IfcTextPath::Out Path; - }; - - // C++ wrapper for IfcTextLiteralWithExtent - struct IfcTextLiteralWithExtent : IfcTextLiteral, ObjectHelper { IfcTextLiteralWithExtent() : Object("IfcTextLiteralWithExtent") {} - Lazy< IfcPlanarExtent > Extent; - IfcBoxAlignment::Out BoxAlignment; - }; - - // C++ wrapper for IfcTopologyRepresentation - struct IfcTopologyRepresentation : IfcShapeModel, ObjectHelper { IfcTopologyRepresentation() : Object("IfcTopologyRepresentation") {} - - }; - - // C++ wrapper for IfcToroidalSurface - struct IfcToroidalSurface : IfcElementarySurface, ObjectHelper { IfcToroidalSurface() : Object("IfcToroidalSurface") {} - IfcPositiveLengthMeasure::Out MajorRadius; - IfcPositiveLengthMeasure::Out MinorRadius; - }; - - // C++ wrapper for IfcTransformer - struct IfcTransformer : IfcEnergyConversionDevice, ObjectHelper { IfcTransformer() : Object("IfcTransformer") {} - Maybe< IfcTransformerTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcTransformerType - struct IfcTransformerType : IfcEnergyConversionDeviceType, ObjectHelper { IfcTransformerType() : Object("IfcTransformerType") {} - IfcTransformerTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcTransportElement - struct IfcTransportElement : IfcElement, ObjectHelper { IfcTransportElement() : Object("IfcTransportElement") {} - Maybe< IfcTransportElementTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcTransportElementType - struct IfcTransportElementType : IfcElementType, ObjectHelper { IfcTransportElementType() : Object("IfcTransportElementType") {} - IfcTransportElementTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcTrapeziumProfileDef - struct IfcTrapeziumProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcTrapeziumProfileDef() : Object("IfcTrapeziumProfileDef") {} - IfcPositiveLengthMeasure::Out BottomXDim; - IfcPositiveLengthMeasure::Out TopXDim; - IfcPositiveLengthMeasure::Out YDim; - IfcLengthMeasure::Out TopXOffset; - }; - - // C++ wrapper for IfcTriangulatedFaceSet - struct IfcTriangulatedFaceSet : IfcTessellatedFaceSet, ObjectHelper { IfcTriangulatedFaceSet() : Object("IfcTriangulatedFaceSet") {} - Maybe< IfcBoolean::Out > Closed; - Maybe< ListOf< IfcPositiveInteger, 1, 0 >::Out > PnIndex; - }; - - // C++ wrapper for IfcTrimmedCurve - struct IfcTrimmedCurve : IfcBoundedCurve, ObjectHelper { IfcTrimmedCurve() : Object("IfcTrimmedCurve") {} - Lazy< IfcCurve > BasisCurve; - ListOf< IfcTrimmingSelect, 1, 2 >::Out Trim1; - ListOf< IfcTrimmingSelect, 1, 2 >::Out Trim2; - IfcBoolean::Out SenseAgreement; - IfcTrimmingPreference::Out MasterRepresentation; - }; - - // C++ wrapper for IfcTubeBundle - struct IfcTubeBundle : IfcEnergyConversionDevice, ObjectHelper { IfcTubeBundle() : Object("IfcTubeBundle") {} - Maybe< IfcTubeBundleTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcTubeBundleType - struct IfcTubeBundleType : IfcEnergyConversionDeviceType, ObjectHelper { IfcTubeBundleType() : Object("IfcTubeBundleType") {} - IfcTubeBundleTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcUShapeProfileDef - struct IfcUShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcUShapeProfileDef() : Object("IfcUShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - IfcPositiveLengthMeasure::Out FlangeWidth; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out FlangeThickness; - Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius; - Maybe< IfcNonNegativeLengthMeasure::Out > EdgeRadius; - Maybe< IfcPlaneAngleMeasure::Out > FlangeSlope; - }; - - // C++ wrapper for IfcUnitAssignment - struct IfcUnitAssignment : ObjectHelper { IfcUnitAssignment() : Object("IfcUnitAssignment") {} - ListOf< IfcUnit, 1, 0 >::Out Units; - }; - - // C++ wrapper for IfcUnitaryControlElement - struct IfcUnitaryControlElement : IfcDistributionControlElement, ObjectHelper { IfcUnitaryControlElement() : Object("IfcUnitaryControlElement") {} - Maybe< IfcUnitaryControlElementTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcUnitaryControlElementType - struct IfcUnitaryControlElementType : IfcDistributionControlElementType, ObjectHelper { IfcUnitaryControlElementType() : Object("IfcUnitaryControlElementType") {} - IfcUnitaryControlElementTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcUnitaryEquipment - struct IfcUnitaryEquipment : IfcEnergyConversionDevice, ObjectHelper { IfcUnitaryEquipment() : Object("IfcUnitaryEquipment") {} - Maybe< IfcUnitaryEquipmentTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcUnitaryEquipmentType - struct IfcUnitaryEquipmentType : IfcEnergyConversionDeviceType, ObjectHelper { IfcUnitaryEquipmentType() : Object("IfcUnitaryEquipmentType") {} - IfcUnitaryEquipmentTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcValve - struct IfcValve : IfcFlowController, ObjectHelper { IfcValve() : Object("IfcValve") {} - Maybe< IfcValveTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcValveType - struct IfcValveType : IfcFlowControllerType, ObjectHelper { IfcValveType() : Object("IfcValveType") {} - IfcValveTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcVector - struct IfcVector : IfcGeometricRepresentationItem, ObjectHelper { IfcVector() : Object("IfcVector") {} - Lazy< IfcDirection > Orientation; - IfcLengthMeasure::Out Magnitude; - }; - - // C++ wrapper for IfcVertex - struct IfcVertex : IfcTopologicalRepresentationItem, ObjectHelper { IfcVertex() : Object("IfcVertex") {} - - }; - - // C++ wrapper for IfcVertexLoop - struct IfcVertexLoop : IfcLoop, ObjectHelper { IfcVertexLoop() : Object("IfcVertexLoop") {} - Lazy< IfcVertex > LoopVertex; - }; - - // C++ wrapper for IfcVertexPoint - struct IfcVertexPoint : IfcVertex, ObjectHelper { IfcVertexPoint() : Object("IfcVertexPoint") {} - Lazy< IfcPoint > VertexGeometry; - }; - - // C++ wrapper for IfcVibrationIsolator - struct IfcVibrationIsolator : IfcElementComponent, ObjectHelper { IfcVibrationIsolator() : Object("IfcVibrationIsolator") {} - Maybe< IfcVibrationIsolatorTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcVibrationIsolatorType - struct IfcVibrationIsolatorType : IfcElementComponentType, ObjectHelper { IfcVibrationIsolatorType() : Object("IfcVibrationIsolatorType") {} - IfcVibrationIsolatorTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcVirtualElement - struct IfcVirtualElement : IfcElement, ObjectHelper { IfcVirtualElement() : Object("IfcVirtualElement") {} - - }; - - // C++ wrapper for IfcVoidingFeature - struct IfcVoidingFeature : IfcFeatureElementSubtraction, ObjectHelper { IfcVoidingFeature() : Object("IfcVoidingFeature") {} - Maybe< IfcVoidingFeatureTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcWall - struct IfcWall : IfcBuildingElement, ObjectHelper { IfcWall() : Object("IfcWall") {} - Maybe< IfcWallTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcWallElementedCase - struct IfcWallElementedCase : IfcWall, ObjectHelper { IfcWallElementedCase() : Object("IfcWallElementedCase") {} - - }; - - // C++ wrapper for IfcWallStandardCase - struct IfcWallStandardCase : IfcWall, ObjectHelper { IfcWallStandardCase() : Object("IfcWallStandardCase") {} - - }; - - // C++ wrapper for IfcWallType - struct IfcWallType : IfcBuildingElementType, ObjectHelper { IfcWallType() : Object("IfcWallType") {} - IfcWallTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcWasteTerminal - struct IfcWasteTerminal : IfcFlowTerminal, ObjectHelper { IfcWasteTerminal() : Object("IfcWasteTerminal") {} - Maybe< IfcWasteTerminalTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcWasteTerminalType - struct IfcWasteTerminalType : IfcFlowTerminalType, ObjectHelper { IfcWasteTerminalType() : Object("IfcWasteTerminalType") {} - IfcWasteTerminalTypeEnum::Out PredefinedType; - }; - - // C++ wrapper for IfcWindow - struct IfcWindow : IfcBuildingElement, ObjectHelper { IfcWindow() : Object("IfcWindow") {} - Maybe< IfcPositiveLengthMeasure::Out > OverallHeight; - Maybe< IfcPositiveLengthMeasure::Out > OverallWidth; - Maybe< IfcWindowTypeEnum::Out > PredefinedType; - Maybe< IfcWindowTypePartitioningEnum::Out > PartitioningType; - Maybe< IfcLabel::Out > UserDefinedPartitioningType; - }; - - // C++ wrapper for IfcWindowStandardCase - struct IfcWindowStandardCase : IfcWindow, ObjectHelper { IfcWindowStandardCase() : Object("IfcWindowStandardCase") {} - - }; - - // C++ wrapper for IfcWindowStyle - struct IfcWindowStyle : IfcTypeProduct, ObjectHelper { IfcWindowStyle() : Object("IfcWindowStyle") {} - IfcWindowStyleConstructionEnum::Out ConstructionType; - IfcWindowStyleOperationEnum::Out OperationType; - IfcBoolean::Out ParameterTakesPrecedence; - IfcBoolean::Out Sizeable; - }; - - // C++ wrapper for IfcWindowType - struct IfcWindowType : IfcBuildingElementType, ObjectHelper { IfcWindowType() : Object("IfcWindowType") {} - IfcWindowTypeEnum::Out PredefinedType; - IfcWindowTypePartitioningEnum::Out PartitioningType; - Maybe< IfcBoolean::Out > ParameterTakesPrecedence; - Maybe< IfcLabel::Out > UserDefinedPartitioningType; - }; - - // C++ wrapper for IfcWorkCalendar - struct IfcWorkCalendar : IfcControl, ObjectHelper { IfcWorkCalendar() : Object("IfcWorkCalendar") {} - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > WorkingTimes; - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > ExceptionTimes; - Maybe< IfcWorkCalendarTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcWorkControl - struct IfcWorkControl : IfcControl, ObjectHelper { IfcWorkControl() : Object("IfcWorkControl") {} - IfcDateTime::Out CreationDate; - Maybe< ListOf< Lazy< NotImplemented >, 1, 0 > > Creators; - Maybe< IfcLabel::Out > Purpose; - Maybe< IfcDuration::Out > Duration; - Maybe< IfcDuration::Out > TotalFloat; - IfcDateTime::Out StartTime; - Maybe< IfcDateTime::Out > FinishTime; - }; - - // C++ wrapper for IfcWorkPlan - struct IfcWorkPlan : IfcWorkControl, ObjectHelper { IfcWorkPlan() : Object("IfcWorkPlan") {} - Maybe< IfcWorkPlanTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcWorkSchedule - struct IfcWorkSchedule : IfcWorkControl, ObjectHelper { IfcWorkSchedule() : Object("IfcWorkSchedule") {} - Maybe< IfcWorkScheduleTypeEnum::Out > PredefinedType; - }; - - // C++ wrapper for IfcZShapeProfileDef - struct IfcZShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper { IfcZShapeProfileDef() : Object("IfcZShapeProfileDef") {} - IfcPositiveLengthMeasure::Out Depth; - IfcPositiveLengthMeasure::Out FlangeWidth; - IfcPositiveLengthMeasure::Out WebThickness; - IfcPositiveLengthMeasure::Out FlangeThickness; - Maybe< IfcNonNegativeLengthMeasure::Out > FilletRadius; - Maybe< IfcNonNegativeLengthMeasure::Out > EdgeRadius; - }; - - // C++ wrapper for IfcZone - struct IfcZone : IfcSystem, ObjectHelper { IfcZone() : Object("IfcZone") {} - Maybe< IfcLabel::Out > LongName; - }; - - void GetSchema(EXPRESS::ConversionSchema& out); - -} //! IFC -namespace STEP { - - // ****************************************************************************** - // Converter stubs - // ****************************************************************************** - -#define DECL_CONV_STUB(type) template <> size_t GenericFill(const STEP::DB& db, const EXPRESS::LIST& params, IFC::type* in) - - DECL_CONV_STUB( IfcRoot ); - DECL_CONV_STUB( IfcObjectDefinition ); - DECL_CONV_STUB( IfcObject ); - DECL_CONV_STUB( IfcControl ); - DECL_CONV_STUB( IfcActionRequest ); - DECL_CONV_STUB( IfcActor ); - DECL_CONV_STUB( IfcProduct ); - DECL_CONV_STUB( IfcElement ); - DECL_CONV_STUB( IfcDistributionElement ); - DECL_CONV_STUB( IfcDistributionControlElement ); - DECL_CONV_STUB( IfcActuator ); - DECL_CONV_STUB( IfcTypeObject ); - DECL_CONV_STUB( IfcTypeProduct ); - DECL_CONV_STUB( IfcElementType ); - DECL_CONV_STUB( IfcDistributionElementType ); - DECL_CONV_STUB( IfcDistributionControlElementType ); - DECL_CONV_STUB( IfcActuatorType ); - DECL_CONV_STUB( IfcRepresentationItem ); - DECL_CONV_STUB( IfcGeometricRepresentationItem ); - DECL_CONV_STUB( IfcSolidModel ); - DECL_CONV_STUB( IfcManifoldSolidBrep ); - DECL_CONV_STUB( IfcAdvancedBrep ); - DECL_CONV_STUB( IfcAdvancedBrepWithVoids ); - DECL_CONV_STUB( IfcTopologicalRepresentationItem ); - DECL_CONV_STUB( IfcFace ); - DECL_CONV_STUB( IfcFaceSurface ); - DECL_CONV_STUB( IfcAdvancedFace ); - DECL_CONV_STUB( IfcDistributionFlowElement ); - DECL_CONV_STUB( IfcFlowTerminal ); - DECL_CONV_STUB( IfcAirTerminal ); - DECL_CONV_STUB( IfcFlowController ); - DECL_CONV_STUB( IfcAirTerminalBox ); - DECL_CONV_STUB( IfcDistributionFlowElementType ); - DECL_CONV_STUB( IfcFlowControllerType ); - DECL_CONV_STUB( IfcAirTerminalBoxType ); - DECL_CONV_STUB( IfcFlowTerminalType ); - DECL_CONV_STUB( IfcAirTerminalType ); - DECL_CONV_STUB( IfcEnergyConversionDevice ); - DECL_CONV_STUB( IfcAirToAirHeatRecovery ); - DECL_CONV_STUB( IfcEnergyConversionDeviceType ); - DECL_CONV_STUB( IfcAirToAirHeatRecoveryType ); - DECL_CONV_STUB( IfcAlarm ); - DECL_CONV_STUB( IfcAlarmType ); - DECL_CONV_STUB( IfcAnnotation ); - DECL_CONV_STUB( IfcAnnotationFillArea ); - DECL_CONV_STUB( IfcProfileDef ); - DECL_CONV_STUB( IfcArbitraryClosedProfileDef ); - DECL_CONV_STUB( IfcArbitraryOpenProfileDef ); - DECL_CONV_STUB( IfcArbitraryProfileDefWithVoids ); - DECL_CONV_STUB( IfcGroup ); - DECL_CONV_STUB( IfcAsset ); - DECL_CONV_STUB( IfcParameterizedProfileDef ); - DECL_CONV_STUB( IfcAsymmetricIShapeProfileDef ); - DECL_CONV_STUB( IfcAudioVisualAppliance ); - DECL_CONV_STUB( IfcAudioVisualApplianceType ); - DECL_CONV_STUB( IfcPlacement ); - DECL_CONV_STUB( IfcAxis1Placement ); - DECL_CONV_STUB( IfcAxis2Placement2D ); - DECL_CONV_STUB( IfcAxis2Placement3D ); - DECL_CONV_STUB( IfcCurve ); - DECL_CONV_STUB( IfcBoundedCurve ); - DECL_CONV_STUB( IfcBSplineCurve ); - DECL_CONV_STUB( IfcBSplineCurveWithKnots ); - DECL_CONV_STUB( IfcSurface ); - DECL_CONV_STUB( IfcBoundedSurface ); - DECL_CONV_STUB( IfcBSplineSurface ); - DECL_CONV_STUB( IfcBSplineSurfaceWithKnots ); - DECL_CONV_STUB( IfcBuildingElement ); - DECL_CONV_STUB( IfcBeam ); - DECL_CONV_STUB( IfcBeamStandardCase ); - DECL_CONV_STUB( IfcBuildingElementType ); - DECL_CONV_STUB( IfcBeamType ); - DECL_CONV_STUB( IfcPresentationItem ); - DECL_CONV_STUB( IfcCsgPrimitive3D ); - DECL_CONV_STUB( IfcBlock ); - DECL_CONV_STUB( IfcBoiler ); - DECL_CONV_STUB( IfcBoilerType ); - DECL_CONV_STUB( IfcBooleanResult ); - DECL_CONV_STUB( IfcBooleanClippingResult ); - DECL_CONV_STUB( IfcCompositeCurve ); - DECL_CONV_STUB( IfcCompositeCurveOnSurface ); - DECL_CONV_STUB( IfcBoundaryCurve ); - DECL_CONV_STUB( IfcBoundingBox ); - DECL_CONV_STUB( IfcHalfSpaceSolid ); - DECL_CONV_STUB( IfcBoxedHalfSpace ); - DECL_CONV_STUB( IfcSpatialElement ); - DECL_CONV_STUB( IfcSpatialStructureElement ); - DECL_CONV_STUB( IfcBuilding ); - DECL_CONV_STUB( IfcElementComponent ); - DECL_CONV_STUB( IfcBuildingElementPart ); - DECL_CONV_STUB( IfcElementComponentType ); - DECL_CONV_STUB( IfcBuildingElementPartType ); - DECL_CONV_STUB( IfcBuildingElementProxy ); - DECL_CONV_STUB( IfcBuildingElementProxyType ); - DECL_CONV_STUB( IfcBuildingStorey ); - DECL_CONV_STUB( IfcSystem ); - DECL_CONV_STUB( IfcBuildingSystem ); - DECL_CONV_STUB( IfcBurner ); - DECL_CONV_STUB( IfcBurnerType ); - DECL_CONV_STUB( IfcCShapeProfileDef ); - DECL_CONV_STUB( IfcFlowFitting ); - DECL_CONV_STUB( IfcCableCarrierFitting ); - DECL_CONV_STUB( IfcFlowFittingType ); - DECL_CONV_STUB( IfcCableCarrierFittingType ); - DECL_CONV_STUB( IfcFlowSegment ); - DECL_CONV_STUB( IfcCableCarrierSegment ); - DECL_CONV_STUB( IfcFlowSegmentType ); - DECL_CONV_STUB( IfcCableCarrierSegmentType ); - DECL_CONV_STUB( IfcCableFitting ); - DECL_CONV_STUB( IfcCableFittingType ); - DECL_CONV_STUB( IfcCableSegment ); - DECL_CONV_STUB( IfcCableSegmentType ); - DECL_CONV_STUB( IfcPoint ); - DECL_CONV_STUB( IfcCartesianPoint ); - DECL_CONV_STUB( IfcCartesianPointList ); - DECL_CONV_STUB( IfcCartesianPointList2D ); - DECL_CONV_STUB( IfcCartesianPointList3D ); - DECL_CONV_STUB( IfcCartesianTransformationOperator ); - DECL_CONV_STUB( IfcCartesianTransformationOperator2D ); - DECL_CONV_STUB( IfcCartesianTransformationOperator2DnonUniform ); - DECL_CONV_STUB( IfcCartesianTransformationOperator3D ); - DECL_CONV_STUB( IfcCartesianTransformationOperator3DnonUniform ); - DECL_CONV_STUB( IfcCenterLineProfileDef ); - DECL_CONV_STUB( IfcChiller ); - DECL_CONV_STUB( IfcChillerType ); - DECL_CONV_STUB( IfcChimney ); - DECL_CONV_STUB( IfcChimneyType ); - DECL_CONV_STUB( IfcConic ); - DECL_CONV_STUB( IfcCircle ); - DECL_CONV_STUB( IfcCircleProfileDef ); - DECL_CONV_STUB( IfcCircleHollowProfileDef ); - DECL_CONV_STUB( IfcCivilElement ); - DECL_CONV_STUB( IfcCivilElementType ); - DECL_CONV_STUB( IfcConnectedFaceSet ); - DECL_CONV_STUB( IfcClosedShell ); - DECL_CONV_STUB( IfcCoil ); - DECL_CONV_STUB( IfcCoilType ); - DECL_CONV_STUB( IfcColourSpecification ); - DECL_CONV_STUB( IfcColourRgb ); - DECL_CONV_STUB( IfcColumn ); - DECL_CONV_STUB( IfcColumnStandardCase ); - DECL_CONV_STUB( IfcColumnType ); - DECL_CONV_STUB( IfcCommunicationsAppliance ); - DECL_CONV_STUB( IfcCommunicationsApplianceType ); - DECL_CONV_STUB( IfcPropertyAbstraction ); - DECL_CONV_STUB( IfcProperty ); - DECL_CONV_STUB( IfcComplexProperty ); - DECL_CONV_STUB( IfcPropertyDefinition ); - DECL_CONV_STUB( IfcCompositeCurveSegment ); - DECL_CONV_STUB( IfcCompositeProfileDef ); - DECL_CONV_STUB( IfcFlowMovingDevice ); - DECL_CONV_STUB( IfcCompressor ); - DECL_CONV_STUB( IfcFlowMovingDeviceType ); - DECL_CONV_STUB( IfcCompressorType ); - DECL_CONV_STUB( IfcCondenser ); - DECL_CONV_STUB( IfcCondenserType ); - DECL_CONV_STUB( IfcResource ); - DECL_CONV_STUB( IfcConstructionResource ); - DECL_CONV_STUB( IfcConstructionEquipmentResource ); - DECL_CONV_STUB( IfcTypeResource ); - DECL_CONV_STUB( IfcConstructionResourceType ); - DECL_CONV_STUB( IfcConstructionEquipmentResourceType ); - DECL_CONV_STUB( IfcConstructionMaterialResource ); - DECL_CONV_STUB( IfcConstructionMaterialResourceType ); - DECL_CONV_STUB( IfcConstructionProductResource ); - DECL_CONV_STUB( IfcConstructionProductResourceType ); - DECL_CONV_STUB( IfcContext ); - DECL_CONV_STUB( IfcNamedUnit ); - DECL_CONV_STUB( IfcContextDependentUnit ); - DECL_CONV_STUB( IfcController ); - DECL_CONV_STUB( IfcControllerType ); - DECL_CONV_STUB( IfcConversionBasedUnit ); - DECL_CONV_STUB( IfcConversionBasedUnitWithOffset ); - DECL_CONV_STUB( IfcCooledBeam ); - DECL_CONV_STUB( IfcCooledBeamType ); - DECL_CONV_STUB( IfcCoolingTower ); - DECL_CONV_STUB( IfcCoolingTowerType ); - DECL_CONV_STUB( IfcCostItem ); - DECL_CONV_STUB( IfcCostSchedule ); - DECL_CONV_STUB( IfcCovering ); - DECL_CONV_STUB( IfcCoveringType ); - DECL_CONV_STUB( IfcCrewResource ); - DECL_CONV_STUB( IfcCrewResourceType ); - DECL_CONV_STUB( IfcCsgSolid ); - DECL_CONV_STUB( IfcCurtainWall ); - DECL_CONV_STUB( IfcCurtainWallType ); - DECL_CONV_STUB( IfcCurveBoundedPlane ); - DECL_CONV_STUB( IfcCurveBoundedSurface ); - DECL_CONV_STUB( IfcPresentationStyle ); - DECL_CONV_STUB( IfcElementarySurface ); - DECL_CONV_STUB( IfcCylindricalSurface ); - DECL_CONV_STUB( IfcDamper ); - DECL_CONV_STUB( IfcDamperType ); - DECL_CONV_STUB( IfcDerivedProfileDef ); - DECL_CONV_STUB( IfcDirection ); - DECL_CONV_STUB( IfcDiscreteAccessory ); - DECL_CONV_STUB( IfcDiscreteAccessoryType ); - DECL_CONV_STUB( IfcDistributionChamberElement ); - DECL_CONV_STUB( IfcDistributionChamberElementType ); - DECL_CONV_STUB( IfcDistributionSystem ); - DECL_CONV_STUB( IfcDistributionCircuit ); - DECL_CONV_STUB( IfcPort ); - DECL_CONV_STUB( IfcDistributionPort ); - DECL_CONV_STUB( IfcDoor ); - DECL_CONV_STUB( IfcPropertySetDefinition ); - DECL_CONV_STUB( IfcDoorStandardCase ); - DECL_CONV_STUB( IfcDoorStyle ); - DECL_CONV_STUB( IfcDoorType ); - DECL_CONV_STUB( IfcDuctFitting ); - DECL_CONV_STUB( IfcDuctFittingType ); - DECL_CONV_STUB( IfcDuctSegment ); - DECL_CONV_STUB( IfcDuctSegmentType ); - DECL_CONV_STUB( IfcFlowTreatmentDevice ); - DECL_CONV_STUB( IfcDuctSilencer ); - DECL_CONV_STUB( IfcFlowTreatmentDeviceType ); - DECL_CONV_STUB( IfcDuctSilencerType ); - DECL_CONV_STUB( IfcEdge ); - DECL_CONV_STUB( IfcEdgeCurve ); - DECL_CONV_STUB( IfcLoop ); - DECL_CONV_STUB( IfcEdgeLoop ); - DECL_CONV_STUB( IfcElectricAppliance ); - DECL_CONV_STUB( IfcElectricApplianceType ); - DECL_CONV_STUB( IfcElectricDistributionBoard ); - DECL_CONV_STUB( IfcElectricDistributionBoardType ); - DECL_CONV_STUB( IfcFlowStorageDevice ); - DECL_CONV_STUB( IfcElectricFlowStorageDevice ); - DECL_CONV_STUB( IfcFlowStorageDeviceType ); - DECL_CONV_STUB( IfcElectricFlowStorageDeviceType ); - DECL_CONV_STUB( IfcElectricGenerator ); - DECL_CONV_STUB( IfcElectricGeneratorType ); - DECL_CONV_STUB( IfcElectricMotor ); - DECL_CONV_STUB( IfcElectricMotorType ); - DECL_CONV_STUB( IfcElectricTimeControl ); - DECL_CONV_STUB( IfcElectricTimeControlType ); - DECL_CONV_STUB( IfcElementAssembly ); - DECL_CONV_STUB( IfcElementAssemblyType ); - DECL_CONV_STUB( IfcQuantitySet ); - DECL_CONV_STUB( IfcElementQuantity ); - DECL_CONV_STUB( IfcEllipse ); - DECL_CONV_STUB( IfcEllipseProfileDef ); - DECL_CONV_STUB( IfcEngine ); - DECL_CONV_STUB( IfcEngineType ); - DECL_CONV_STUB( IfcEvaporativeCooler ); - DECL_CONV_STUB( IfcEvaporativeCoolerType ); - DECL_CONV_STUB( IfcEvaporator ); - DECL_CONV_STUB( IfcEvaporatorType ); - DECL_CONV_STUB( IfcProcess ); - DECL_CONV_STUB( IfcEvent ); - DECL_CONV_STUB( IfcTypeProcess ); - DECL_CONV_STUB( IfcEventType ); - DECL_CONV_STUB( IfcExternalSpatialStructureElement ); - DECL_CONV_STUB( IfcExternalSpatialElement ); - DECL_CONV_STUB( IfcSweptAreaSolid ); - DECL_CONV_STUB( IfcExtrudedAreaSolid ); - DECL_CONV_STUB( IfcExtrudedAreaSolidTapered ); - DECL_CONV_STUB( IfcFaceBasedSurfaceModel ); - DECL_CONV_STUB( IfcFaceBound ); - DECL_CONV_STUB( IfcFaceOuterBound ); - DECL_CONV_STUB( IfcFacetedBrep ); - DECL_CONV_STUB( IfcFacetedBrepWithVoids ); - DECL_CONV_STUB( IfcFan ); - DECL_CONV_STUB( IfcFanType ); - DECL_CONV_STUB( IfcFastener ); - DECL_CONV_STUB( IfcFastenerType ); - DECL_CONV_STUB( IfcFeatureElement ); - DECL_CONV_STUB( IfcFeatureElementAddition ); - DECL_CONV_STUB( IfcFeatureElementSubtraction ); - DECL_CONV_STUB( IfcFillAreaStyleHatching ); - DECL_CONV_STUB( IfcFillAreaStyleTiles ); - DECL_CONV_STUB( IfcFilter ); - DECL_CONV_STUB( IfcFilterType ); - DECL_CONV_STUB( IfcFireSuppressionTerminal ); - DECL_CONV_STUB( IfcFireSuppressionTerminalType ); - DECL_CONV_STUB( IfcFixedReferenceSweptAreaSolid ); - DECL_CONV_STUB( IfcFlowInstrument ); - DECL_CONV_STUB( IfcFlowInstrumentType ); - DECL_CONV_STUB( IfcFlowMeter ); - DECL_CONV_STUB( IfcFlowMeterType ); - DECL_CONV_STUB( IfcFooting ); - DECL_CONV_STUB( IfcFootingType ); - DECL_CONV_STUB( IfcFurnishingElement ); - DECL_CONV_STUB( IfcFurnishingElementType ); - DECL_CONV_STUB( IfcFurniture ); - DECL_CONV_STUB( IfcFurnitureType ); - DECL_CONV_STUB( IfcGeographicElement ); - DECL_CONV_STUB( IfcGeographicElementType ); - DECL_CONV_STUB( IfcGeometricSet ); - DECL_CONV_STUB( IfcGeometricCurveSet ); - DECL_CONV_STUB( IfcRepresentationContext ); - DECL_CONV_STUB( IfcGeometricRepresentationContext ); - DECL_CONV_STUB( IfcGeometricRepresentationSubContext ); - DECL_CONV_STUB( IfcGrid ); - DECL_CONV_STUB( IfcObjectPlacement ); - DECL_CONV_STUB( IfcGridPlacement ); - DECL_CONV_STUB( IfcHeatExchanger ); - DECL_CONV_STUB( IfcHeatExchangerType ); - DECL_CONV_STUB( IfcHumidifier ); - DECL_CONV_STUB( IfcHumidifierType ); - DECL_CONV_STUB( IfcIShapeProfileDef ); - DECL_CONV_STUB( IfcIndexedPolyCurve ); - DECL_CONV_STUB( IfcTessellatedItem ); - DECL_CONV_STUB( IfcIndexedPolygonalFace ); - DECL_CONV_STUB( IfcIndexedPolygonalFaceWithVoids ); - DECL_CONV_STUB( IfcInterceptor ); - DECL_CONV_STUB( IfcInterceptorType ); - DECL_CONV_STUB( IfcSurfaceCurve ); - DECL_CONV_STUB( IfcIntersectionCurve ); - DECL_CONV_STUB( IfcInventory ); - DECL_CONV_STUB( IfcJunctionBox ); - DECL_CONV_STUB( IfcJunctionBoxType ); - DECL_CONV_STUB( IfcLShapeProfileDef ); - DECL_CONV_STUB( IfcLaborResource ); - DECL_CONV_STUB( IfcLaborResourceType ); - DECL_CONV_STUB( IfcLamp ); - DECL_CONV_STUB( IfcLampType ); - DECL_CONV_STUB( IfcLightFixture ); - DECL_CONV_STUB( IfcLightFixtureType ); - DECL_CONV_STUB( IfcLightSource ); - DECL_CONV_STUB( IfcLightSourceAmbient ); - DECL_CONV_STUB( IfcLightSourceDirectional ); - DECL_CONV_STUB( IfcLightSourceGoniometric ); - DECL_CONV_STUB( IfcLightSourcePositional ); - DECL_CONV_STUB( IfcLightSourceSpot ); - DECL_CONV_STUB( IfcLine ); - DECL_CONV_STUB( IfcLocalPlacement ); - DECL_CONV_STUB( IfcMappedItem ); - DECL_CONV_STUB( IfcProductRepresentation ); - DECL_CONV_STUB( IfcMaterialDefinitionRepresentation ); - DECL_CONV_STUB( IfcMeasureWithUnit ); - DECL_CONV_STUB( IfcMechanicalFastener ); - DECL_CONV_STUB( IfcMechanicalFastenerType ); - DECL_CONV_STUB( IfcMedicalDevice ); - DECL_CONV_STUB( IfcMedicalDeviceType ); - DECL_CONV_STUB( IfcMember ); - DECL_CONV_STUB( IfcMemberStandardCase ); - DECL_CONV_STUB( IfcMemberType ); - DECL_CONV_STUB( IfcMirroredProfileDef ); - DECL_CONV_STUB( IfcMotorConnection ); - DECL_CONV_STUB( IfcMotorConnectionType ); - DECL_CONV_STUB( IfcOccupant ); - DECL_CONV_STUB( IfcOffsetCurve2D ); - DECL_CONV_STUB( IfcOffsetCurve3D ); - DECL_CONV_STUB( IfcOpenShell ); - DECL_CONV_STUB( IfcOpeningElement ); - DECL_CONV_STUB( IfcOpeningStandardCase ); - DECL_CONV_STUB( IfcOrientedEdge ); - DECL_CONV_STUB( IfcOuterBoundaryCurve ); - DECL_CONV_STUB( IfcOutlet ); - DECL_CONV_STUB( IfcOutletType ); - DECL_CONV_STUB( IfcPath ); - DECL_CONV_STUB( IfcPcurve ); - DECL_CONV_STUB( IfcPerformanceHistory ); - DECL_CONV_STUB( IfcPermit ); - DECL_CONV_STUB( IfcPile ); - DECL_CONV_STUB( IfcPileType ); - DECL_CONV_STUB( IfcPipeFitting ); - DECL_CONV_STUB( IfcPipeFittingType ); - DECL_CONV_STUB( IfcPipeSegment ); - DECL_CONV_STUB( IfcPipeSegmentType ); - DECL_CONV_STUB( IfcPlanarExtent ); - DECL_CONV_STUB( IfcPlanarBox ); - DECL_CONV_STUB( IfcPlane ); - DECL_CONV_STUB( IfcPlate ); - DECL_CONV_STUB( IfcPlateStandardCase ); - DECL_CONV_STUB( IfcPlateType ); - DECL_CONV_STUB( IfcPointOnCurve ); - DECL_CONV_STUB( IfcPointOnSurface ); - DECL_CONV_STUB( IfcPolyLoop ); - DECL_CONV_STUB( IfcPolygonalBoundedHalfSpace ); - DECL_CONV_STUB( IfcTessellatedFaceSet ); - DECL_CONV_STUB( IfcPolygonalFaceSet ); - DECL_CONV_STUB( IfcPolyline ); - DECL_CONV_STUB( IfcPresentationStyleAssignment ); - DECL_CONV_STUB( IfcProcedure ); - DECL_CONV_STUB( IfcProcedureType ); - DECL_CONV_STUB( IfcProductDefinitionShape ); - DECL_CONV_STUB( IfcProject ); - DECL_CONV_STUB( IfcProjectLibrary ); - DECL_CONV_STUB( IfcProjectOrder ); - DECL_CONV_STUB( IfcProjectionElement ); - DECL_CONV_STUB( IfcSimpleProperty ); - DECL_CONV_STUB( IfcPropertyBoundedValue ); - DECL_CONV_STUB( IfcPropertyEnumeratedValue ); - DECL_CONV_STUB( IfcPropertyListValue ); - DECL_CONV_STUB( IfcPropertyReferenceValue ); - DECL_CONV_STUB( IfcPropertySet ); - DECL_CONV_STUB( IfcPropertySingleValue ); - DECL_CONV_STUB( IfcPropertyTableValue ); - DECL_CONV_STUB( IfcProtectiveDevice ); - DECL_CONV_STUB( IfcProtectiveDeviceTrippingUnit ); - DECL_CONV_STUB( IfcProtectiveDeviceTrippingUnitType ); - DECL_CONV_STUB( IfcProtectiveDeviceType ); - DECL_CONV_STUB( IfcProxy ); - DECL_CONV_STUB( IfcPump ); - DECL_CONV_STUB( IfcPumpType ); - DECL_CONV_STUB( IfcRailing ); - DECL_CONV_STUB( IfcRailingType ); - DECL_CONV_STUB( IfcRamp ); - DECL_CONV_STUB( IfcRampFlight ); - DECL_CONV_STUB( IfcRampFlightType ); - DECL_CONV_STUB( IfcRampType ); - DECL_CONV_STUB( IfcRationalBSplineCurveWithKnots ); - DECL_CONV_STUB( IfcRationalBSplineSurfaceWithKnots ); - DECL_CONV_STUB( IfcRectangleProfileDef ); - DECL_CONV_STUB( IfcRectangleHollowProfileDef ); - DECL_CONV_STUB( IfcRectangularPyramid ); - DECL_CONV_STUB( IfcRectangularTrimmedSurface ); - DECL_CONV_STUB( IfcReinforcingElement ); - DECL_CONV_STUB( IfcReinforcingBar ); - DECL_CONV_STUB( IfcReinforcingElementType ); - DECL_CONV_STUB( IfcReinforcingBarType ); - DECL_CONV_STUB( IfcReinforcingMesh ); - DECL_CONV_STUB( IfcReinforcingMeshType ); - DECL_CONV_STUB( IfcRelationship ); - DECL_CONV_STUB( IfcRelDecomposes ); - DECL_CONV_STUB( IfcRelAggregates ); - DECL_CONV_STUB( IfcRelConnects ); - DECL_CONV_STUB( IfcRelContainedInSpatialStructure ); - DECL_CONV_STUB( IfcRelDefines ); - DECL_CONV_STUB( IfcRelDefinesByProperties ); - DECL_CONV_STUB( IfcRelFillsElement ); - DECL_CONV_STUB( IfcRelVoidsElement ); - DECL_CONV_STUB( IfcReparametrisedCompositeCurveSegment ); - DECL_CONV_STUB( IfcRepresentation ); - DECL_CONV_STUB( IfcRepresentationMap ); - DECL_CONV_STUB( IfcRevolvedAreaSolid ); - DECL_CONV_STUB( IfcRevolvedAreaSolidTapered ); - DECL_CONV_STUB( IfcRightCircularCone ); - DECL_CONV_STUB( IfcRightCircularCylinder ); - DECL_CONV_STUB( IfcRoof ); - DECL_CONV_STUB( IfcRoofType ); - DECL_CONV_STUB( IfcRoundedRectangleProfileDef ); - DECL_CONV_STUB( IfcSIUnit ); - DECL_CONV_STUB( IfcSanitaryTerminal ); - DECL_CONV_STUB( IfcSanitaryTerminalType ); - DECL_CONV_STUB( IfcSeamCurve ); - DECL_CONV_STUB( IfcSectionedSpine ); - DECL_CONV_STUB( IfcSensor ); - DECL_CONV_STUB( IfcSensorType ); - DECL_CONV_STUB( IfcShadingDevice ); - DECL_CONV_STUB( IfcShadingDeviceType ); - DECL_CONV_STUB( IfcShapeModel ); - DECL_CONV_STUB( IfcShapeRepresentation ); - DECL_CONV_STUB( IfcShellBasedSurfaceModel ); - DECL_CONV_STUB( IfcSite ); - DECL_CONV_STUB( IfcSlab ); - DECL_CONV_STUB( IfcSlabElementedCase ); - DECL_CONV_STUB( IfcSlabStandardCase ); - DECL_CONV_STUB( IfcSlabType ); - DECL_CONV_STUB( IfcSolarDevice ); - DECL_CONV_STUB( IfcSolarDeviceType ); - DECL_CONV_STUB( IfcSpace ); - DECL_CONV_STUB( IfcSpaceHeater ); - DECL_CONV_STUB( IfcSpaceHeaterType ); - DECL_CONV_STUB( IfcSpatialElementType ); - DECL_CONV_STUB( IfcSpatialStructureElementType ); - DECL_CONV_STUB( IfcSpaceType ); - DECL_CONV_STUB( IfcSpatialZone ); - DECL_CONV_STUB( IfcSpatialZoneType ); - DECL_CONV_STUB( IfcSphere ); - DECL_CONV_STUB( IfcSphericalSurface ); - DECL_CONV_STUB( IfcStackTerminal ); - DECL_CONV_STUB( IfcStackTerminalType ); - DECL_CONV_STUB( IfcStair ); - DECL_CONV_STUB( IfcStairFlight ); - DECL_CONV_STUB( IfcStairFlightType ); - DECL_CONV_STUB( IfcStairType ); - DECL_CONV_STUB( IfcStructuralActivity ); - DECL_CONV_STUB( IfcStructuralAction ); - DECL_CONV_STUB( IfcStructuralAnalysisModel ); - DECL_CONV_STUB( IfcStructuralItem ); - DECL_CONV_STUB( IfcStructuralConnection ); - DECL_CONV_STUB( IfcStructuralCurveAction ); - DECL_CONV_STUB( IfcStructuralCurveConnection ); - DECL_CONV_STUB( IfcStructuralMember ); - DECL_CONV_STUB( IfcStructuralCurveMember ); - DECL_CONV_STUB( IfcStructuralCurveMemberVarying ); - DECL_CONV_STUB( IfcStructuralReaction ); - DECL_CONV_STUB( IfcStructuralCurveReaction ); - DECL_CONV_STUB( IfcStructuralLinearAction ); - DECL_CONV_STUB( IfcStructuralLoadGroup ); - DECL_CONV_STUB( IfcStructuralLoadCase ); - DECL_CONV_STUB( IfcStructuralSurfaceAction ); - DECL_CONV_STUB( IfcStructuralPlanarAction ); - DECL_CONV_STUB( IfcStructuralPointAction ); - DECL_CONV_STUB( IfcStructuralPointConnection ); - DECL_CONV_STUB( IfcStructuralPointReaction ); - DECL_CONV_STUB( IfcStructuralResultGroup ); - DECL_CONV_STUB( IfcStructuralSurfaceConnection ); - DECL_CONV_STUB( IfcStructuralSurfaceMember ); - DECL_CONV_STUB( IfcStructuralSurfaceMemberVarying ); - DECL_CONV_STUB( IfcStructuralSurfaceReaction ); - DECL_CONV_STUB( IfcStyleModel ); - DECL_CONV_STUB( IfcStyledItem ); - DECL_CONV_STUB( IfcStyledRepresentation ); - DECL_CONV_STUB( IfcSubContractResource ); - DECL_CONV_STUB( IfcSubContractResourceType ); - DECL_CONV_STUB( IfcSubedge ); - DECL_CONV_STUB( IfcSurfaceCurveSweptAreaSolid ); - DECL_CONV_STUB( IfcSurfaceFeature ); - DECL_CONV_STUB( IfcSweptSurface ); - DECL_CONV_STUB( IfcSurfaceOfLinearExtrusion ); - DECL_CONV_STUB( IfcSurfaceOfRevolution ); - DECL_CONV_STUB( IfcSurfaceStyle ); - DECL_CONV_STUB( IfcSurfaceStyleShading ); - DECL_CONV_STUB( IfcSurfaceStyleRendering ); - DECL_CONV_STUB( IfcSurfaceStyleWithTextures ); - DECL_CONV_STUB( IfcSweptDiskSolid ); - DECL_CONV_STUB( IfcSweptDiskSolidPolygonal ); - DECL_CONV_STUB( IfcSwitchingDevice ); - DECL_CONV_STUB( IfcSwitchingDeviceType ); - DECL_CONV_STUB( IfcSystemFurnitureElement ); - DECL_CONV_STUB( IfcSystemFurnitureElementType ); - DECL_CONV_STUB( IfcTShapeProfileDef ); - DECL_CONV_STUB( IfcTank ); - DECL_CONV_STUB( IfcTankType ); - DECL_CONV_STUB( IfcTask ); - DECL_CONV_STUB( IfcTaskType ); - DECL_CONV_STUB( IfcTendon ); - DECL_CONV_STUB( IfcTendonAnchor ); - DECL_CONV_STUB( IfcTendonAnchorType ); - DECL_CONV_STUB( IfcTendonType ); - DECL_CONV_STUB( IfcTextLiteral ); - DECL_CONV_STUB( IfcTextLiteralWithExtent ); - DECL_CONV_STUB( IfcTopologyRepresentation ); - DECL_CONV_STUB( IfcToroidalSurface ); - DECL_CONV_STUB( IfcTransformer ); - DECL_CONV_STUB( IfcTransformerType ); - DECL_CONV_STUB( IfcTransportElement ); - DECL_CONV_STUB( IfcTransportElementType ); - DECL_CONV_STUB( IfcTrapeziumProfileDef ); - DECL_CONV_STUB( IfcTriangulatedFaceSet ); - DECL_CONV_STUB( IfcTrimmedCurve ); - DECL_CONV_STUB( IfcTubeBundle ); - DECL_CONV_STUB( IfcTubeBundleType ); - DECL_CONV_STUB( IfcUShapeProfileDef ); - DECL_CONV_STUB( IfcUnitAssignment ); - DECL_CONV_STUB( IfcUnitaryControlElement ); - DECL_CONV_STUB( IfcUnitaryControlElementType ); - DECL_CONV_STUB( IfcUnitaryEquipment ); - DECL_CONV_STUB( IfcUnitaryEquipmentType ); - DECL_CONV_STUB( IfcValve ); - DECL_CONV_STUB( IfcValveType ); - DECL_CONV_STUB( IfcVector ); - DECL_CONV_STUB( IfcVertex ); - DECL_CONV_STUB( IfcVertexLoop ); - DECL_CONV_STUB( IfcVertexPoint ); - DECL_CONV_STUB( IfcVibrationIsolator ); - DECL_CONV_STUB( IfcVibrationIsolatorType ); - DECL_CONV_STUB( IfcVirtualElement ); - DECL_CONV_STUB( IfcVoidingFeature ); - DECL_CONV_STUB( IfcWall ); - DECL_CONV_STUB( IfcWallElementedCase ); - DECL_CONV_STUB( IfcWallStandardCase ); - DECL_CONV_STUB( IfcWallType ); - DECL_CONV_STUB( IfcWasteTerminal ); - DECL_CONV_STUB( IfcWasteTerminalType ); - DECL_CONV_STUB( IfcWindow ); - DECL_CONV_STUB( IfcWindowStandardCase ); - DECL_CONV_STUB( IfcWindowStyle ); - DECL_CONV_STUB( IfcWindowType ); - DECL_CONV_STUB( IfcWorkCalendar ); - DECL_CONV_STUB( IfcWorkControl ); - DECL_CONV_STUB( IfcWorkPlan ); - DECL_CONV_STUB( IfcWorkSchedule ); - DECL_CONV_STUB( IfcZShapeProfileDef ); - DECL_CONV_STUB( IfcZone ); - - -#undef DECL_CONV_STUB - -} //! Schema_4 -} //! STEP -} //! Assimp - -#endif // INCLUDED_IFC_READER_GEN_H diff --git a/libs/assimp/code/AssetLib/IFC/IFCUtil.cpp b/libs/assimp/code/AssetLib/IFC/IFCUtil.cpp deleted file mode 100644 index 6b378c1..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCUtil.cpp +++ /dev/null @@ -1,701 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFCUtil.cpp - * @brief Implementation of conversion routines for some common Ifc helper entities. - */ - -#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER - -#include "AssetLib/IFC/IFCUtil.h" -#include "Common/PolyTools.h" -#include "PostProcessing/ProcessHelper.h" - -namespace Assimp { -namespace IFC { - -// ------------------------------------------------------------------------------------------------ -void TempOpening::Transform(const IfcMatrix4& mat) { - if(profileMesh) { - profileMesh->Transform(mat); - } - if(profileMesh2D) { - profileMesh2D->Transform(mat); - } - extrusionDir *= IfcMatrix3(mat); -} - -// ------------------------------------------------------------------------------------------------ -aiMesh* TempMesh::ToMesh() -{ - ai_assert(mVerts.size() == std::accumulate(mVertcnt.begin(),mVertcnt.end(),size_t(0))); - - if (mVerts.empty()) { - return nullptr; - } - - std::unique_ptr mesh(new aiMesh()); - - // copy vertices - mesh->mNumVertices = static_cast(mVerts.size()); - mesh->mVertices = new aiVector3D[mesh->mNumVertices]; - std::copy(mVerts.begin(),mVerts.end(),mesh->mVertices); - - // and build up faces - mesh->mNumFaces = static_cast(mVertcnt.size()); - mesh->mFaces = new aiFace[mesh->mNumFaces]; - - for(unsigned int i = 0,n=0, acc = 0; i < mesh->mNumFaces; ++n) { - aiFace& f = mesh->mFaces[i]; - if (!mVertcnt[n]) { - --mesh->mNumFaces; - continue; - } - - f.mNumIndices = mVertcnt[n]; - f.mIndices = new unsigned int[f.mNumIndices]; - for(unsigned int a = 0; a < f.mNumIndices; ++a) { - f.mIndices[a] = acc++; - } - - ++i; - } - - return mesh.release(); -} - -// ------------------------------------------------------------------------------------------------ -void TempMesh::Clear() -{ - mVerts.clear(); - mVertcnt.clear(); -} - -// ------------------------------------------------------------------------------------------------ -void TempMesh::Transform(const IfcMatrix4& mat) -{ - for(IfcVector3& v : mVerts) { - v *= mat; - } -} - -// ------------------------------------------------------------------------------ -IfcVector3 TempMesh::Center() const -{ - return (mVerts.size() == 0) ? IfcVector3(0.0f, 0.0f, 0.0f) : (std::accumulate(mVerts.begin(),mVerts.end(),IfcVector3()) / static_cast(mVerts.size())); -} - -// ------------------------------------------------------------------------------------------------ -void TempMesh::Append(const TempMesh& other) -{ - mVerts.insert(mVerts.end(),other.mVerts.begin(),other.mVerts.end()); - mVertcnt.insert(mVertcnt.end(),other.mVertcnt.begin(),other.mVertcnt.end()); -} - -// ------------------------------------------------------------------------------------------------ -void TempMesh::RemoveDegenerates() -{ - // The strategy is simple: walk the mesh and compute normals using - // Newell's algorithm. The length of the normals gives the area - // of the polygons, which is close to zero for lines. - - std::vector normals; - ComputePolygonNormals(normals, false); - - bool drop = false; - size_t inor = 0; - - std::vector::iterator vit = mVerts.begin(); - for (std::vector::iterator it = mVertcnt.begin(); it != mVertcnt.end(); ++inor) { - const unsigned int pcount = *it; - - if (normals[inor].SquareLength() < 1e-10f) { - it = mVertcnt.erase(it); - vit = mVerts.erase(vit, vit + pcount); - - drop = true; - continue; - } - - vit += pcount; - ++it; - } - - if(drop) { - IFCImporter::LogVerboseDebug("removing degenerate faces"); - } -} - -// ------------------------------------------------------------------------------------------------ -IfcVector3 TempMesh::ComputePolygonNormal(const IfcVector3* vtcs, size_t cnt, bool normalize) -{ - std::vector temp((cnt+2)*3); - for( size_t vofs = 0, i = 0; vofs < cnt; ++vofs ) - { - const IfcVector3& v = vtcs[vofs]; - temp[i++] = v.x; - temp[i++] = v.y; - temp[i++] = v.z; - } - - IfcVector3 nor; - NewellNormal<3, 3, 3>(nor, static_cast(cnt), &temp[0], &temp[1], &temp[2]); - return normalize ? nor.Normalize() : nor; -} - -// ------------------------------------------------------------------------------------------------ -void TempMesh::ComputePolygonNormals(std::vector& normals, - bool normalize, - size_t ofs) const -{ - size_t max_vcount = 0; - std::vector::const_iterator begin = mVertcnt.begin()+ofs, end = mVertcnt.end(), iit; - for(iit = begin; iit != end; ++iit) { - max_vcount = std::max(max_vcount,static_cast(*iit)); - } - - std::vector temp((max_vcount+2)*4); - normals.reserve( normals.size() + mVertcnt.size()-ofs ); - - // `NewellNormal()` currently has a relatively strange interface and need to - // re-structure things a bit to meet them. - size_t vidx = std::accumulate(mVertcnt.begin(),begin,0); - for(iit = begin; iit != end; vidx += *iit++) { - if (!*iit) { - normals.push_back(IfcVector3()); - continue; - } - for(size_t vofs = 0, cnt = 0; vofs < *iit; ++vofs) { - const IfcVector3& v = mVerts[vidx+vofs]; - temp[cnt++] = v.x; - temp[cnt++] = v.y; - temp[cnt++] = v.z; -#ifdef ASSIMP_BUILD_DEBUG - temp[cnt] = std::numeric_limits::quiet_NaN(); -#endif - ++cnt; - } - - normals.push_back(IfcVector3()); - NewellNormal<4,4,4>(normals.back(),*iit,&temp[0],&temp[1],&temp[2]); - } - - if(normalize) { - for(IfcVector3& n : normals) { - n.Normalize(); - } - } -} - -// ------------------------------------------------------------------------------------------------ -// Compute the normal of the last polygon in the given mesh -IfcVector3 TempMesh::ComputeLastPolygonNormal(bool normalize) const { - return ComputePolygonNormal(&mVerts[mVerts.size() - mVertcnt.back()], mVertcnt.back(), normalize); -} - -struct CompareVector { - bool operator () (const IfcVector3& a, const IfcVector3& b) const { - IfcVector3 d = a - b; - IfcFloat eps = ai_epsilon; - return d.x < -eps || (std::abs(d.x) < eps && d.y < -eps) || (std::abs(d.x) < eps && std::abs(d.y) < eps && d.z < -eps); - } -}; - -struct FindVector { - IfcVector3 v; - FindVector(const IfcVector3& p) : v(p) { } - bool operator()(const IfcVector3 &p) { - return FuzzyVectorCompare(ai_epsilon)(p, v); - } -}; - -// ------------------------------------------------------------------------------------------------ -void TempMesh::FixupFaceOrientation() -{ - const IfcVector3 vavg = Center(); - - // create a list of start indices for all faces to allow random access to faces - std::vector faceStartIndices(mVertcnt.size()); - for( size_t i = 0, a = 0; a < mVertcnt.size(); i += mVertcnt[a], ++a ) - faceStartIndices[a] = i; - - // list all faces on a vertex - std::map, CompareVector> facesByVertex; - for( size_t a = 0; a < mVertcnt.size(); ++a ) - { - for( size_t b = 0; b < mVertcnt[a]; ++b ) - facesByVertex[mVerts[faceStartIndices[a] + b]].push_back(a); - } - // determine neighbourhood for all polys - std::vector neighbour(mVerts.size(), SIZE_MAX); - std::vector tempIntersect(10); - for( size_t a = 0; a < mVertcnt.size(); ++a ) - { - for( size_t b = 0; b < mVertcnt[a]; ++b ) - { - size_t ib = faceStartIndices[a] + b, nib = faceStartIndices[a] + (b + 1) % mVertcnt[a]; - const std::vector& facesOnB = facesByVertex[mVerts[ib]]; - const std::vector& facesOnNB = facesByVertex[mVerts[nib]]; - // there should be exactly one or two faces which appear in both lists. Our face and the other side - std::vector::iterator sectstart = tempIntersect.begin(); - std::vector::iterator sectend = std::set_intersection( - facesOnB.begin(), facesOnB.end(), facesOnNB.begin(), facesOnNB.end(), sectstart); - - if( std::distance(sectstart, sectend) != 2 ) - continue; - if( *sectstart == a ) - ++sectstart; - neighbour[ib] = *sectstart; - } - } - - // now we're getting started. We take the face which is the farthest away from the center. This face is most probably - // facing outwards. So we reverse this face to point outwards in relation to the center. Then we adapt neighbouring - // faces to have the same winding until all faces have been tested. - std::vector faceDone(mVertcnt.size(), false); - while( std::count(faceDone.begin(), faceDone.end(), false) != 0 ) - { - // find the farthest of the remaining faces - size_t farthestIndex = SIZE_MAX; - IfcFloat farthestDistance = -1.0; - for( size_t a = 0; a < mVertcnt.size(); ++a ) - { - if( faceDone[a] ) - continue; - IfcVector3 faceCenter = std::accumulate(mVerts.begin() + faceStartIndices[a], - mVerts.begin() + faceStartIndices[a] + mVertcnt[a], IfcVector3(0.0)) / IfcFloat(mVertcnt[a]); - IfcFloat dst = (faceCenter - vavg).SquareLength(); - if( dst > farthestDistance ) { farthestDistance = dst; farthestIndex = a; } - } - - // calculate its normal and reverse the poly if its facing towards the mesh center - IfcVector3 farthestNormal = ComputePolygonNormal(mVerts.data() + faceStartIndices[farthestIndex], mVertcnt[farthestIndex]); - IfcVector3 farthestCenter = std::accumulate(mVerts.begin() + faceStartIndices[farthestIndex], - mVerts.begin() + faceStartIndices[farthestIndex] + mVertcnt[farthestIndex], IfcVector3(0.0)) - / IfcFloat(mVertcnt[farthestIndex]); - // We accept a bit of negative orientation without reversing. In case of doubt, prefer the orientation given in - // the file. - if( (farthestNormal * (farthestCenter - vavg).Normalize()) < -0.4 ) - { - size_t fsi = faceStartIndices[farthestIndex], fvc = mVertcnt[farthestIndex]; - std::reverse(mVerts.begin() + fsi, mVerts.begin() + fsi + fvc); - std::reverse(neighbour.begin() + fsi, neighbour.begin() + fsi + fvc); - // because of the neighbour index belonging to the edge starting with the point at the same index, we need to - // cycle the neighbours through to match the edges again. - // Before: points A - B - C - D with edge neighbour p - q - r - s - // After: points D - C - B - A, reversed neighbours are s - r - q - p, but the should be - // r q p s - for( size_t a = 0; a < fvc - 1; ++a ) - std::swap(neighbour[fsi + a], neighbour[fsi + a + 1]); - } - faceDone[farthestIndex] = true; - std::vector todo; - todo.push_back(farthestIndex); - - // go over its neighbour faces recursively and adapt their winding order to match the farthest face - while( !todo.empty() ) - { - size_t tdf = todo.back(); - size_t vsi = faceStartIndices[tdf], vc = mVertcnt[tdf]; - todo.pop_back(); - - // check its neighbours - for( size_t a = 0; a < vc; ++a ) - { - // ignore neighbours if we already checked them - size_t nbi = neighbour[vsi + a]; - if( nbi == SIZE_MAX || faceDone[nbi] ) - continue; - - const IfcVector3& vp = mVerts[vsi + a]; - size_t nbvsi = faceStartIndices[nbi], nbvc = mVertcnt[nbi]; - std::vector::iterator it = std::find_if(mVerts.begin() + nbvsi, mVerts.begin() + nbvsi + nbvc, FindVector(vp)); - ai_assert(it != mVerts.begin() + nbvsi + nbvc); - size_t nb_vidx = std::distance(mVerts.begin() + nbvsi, it); - // two faces winded in the same direction should have a crossed edge, where one face has p0->p1 and the other - // has p1'->p0'. If the next point on the neighbouring face is also the next on the current face, we need - // to reverse the neighbour - nb_vidx = (nb_vidx + 1) % nbvc; - size_t oursideidx = (a + 1) % vc; - if (FuzzyVectorCompare(ai_epsilon)(mVerts[vsi + oursideidx], mVerts[nbvsi + nb_vidx])) { - std::reverse(mVerts.begin() + nbvsi, mVerts.begin() + nbvsi + nbvc); - std::reverse(neighbour.begin() + nbvsi, neighbour.begin() + nbvsi + nbvc); - for (size_t aa = 0; aa < nbvc - 1; ++aa) { - std::swap(neighbour[nbvsi + aa], neighbour[nbvsi + aa + 1]); - } - } - - // either way we're done with the neighbour. Mark it as done and continue checking from there recursively - faceDone[nbi] = true; - todo.push_back(nbi); - } - } - - // no more faces reachable from this part of the surface, start over with a disjunct part and its farthest face - } -} - -// ------------------------------------------------------------------------------------------------ -void TempMesh::RemoveAdjacentDuplicates() { - bool drop = false; - std::vector::iterator base = mVerts.begin(); - for(unsigned int& cnt : mVertcnt) { - if (cnt < 2){ - base += cnt; - continue; - } - - IfcVector3 vmin,vmax; - ArrayBounds(&*base, cnt ,vmin,vmax); - - - const IfcFloat epsilon = (vmax-vmin).SquareLength() / static_cast(1e9); - //const IfcFloat dotepsilon = 1e-9; - - //// look for vertices that lie directly on the line between their predecessor and their - //// successor and replace them with either of them. - - //for(size_t i = 0; i < cnt; ++i) { - // IfcVector3& v1 = *(base+i), &v0 = *(base+(i?i-1:cnt-1)), &v2 = *(base+(i+1)%cnt); - // const IfcVector3& d0 = (v1-v0), &d1 = (v2-v1); - // const IfcFloat l0 = d0.SquareLength(), l1 = d1.SquareLength(); - // if (!l0 || !l1) { - // continue; - // } - - // const IfcFloat d = (d0/std::sqrt(l0))*(d1/std::sqrt(l1)); - - // if ( d >= 1.f-dotepsilon ) { - // v1 = v0; - // } - // else if ( d < -1.f+dotepsilon ) { - // v2 = v1; - // continue; - // } - //} - - // drop any identical, adjacent vertices. this pass will collect the dropouts - // of the previous pass as a side-effect. - FuzzyVectorCompare fz(epsilon); - std::vector::iterator end = base+cnt, e = std::unique( base, end, fz ); - if (e != end) { - cnt -= static_cast(std::distance(e, end)); - mVerts.erase(e,end); - drop = true; - } - - // check front and back vertices for this polygon - if (cnt > 1 && fz(*base,*(base+cnt-1))) { - mVerts.erase(base+ --cnt); - drop = true; - } - - // removing adjacent duplicates shouldn't erase everything :-) - ai_assert(cnt>0); - base += cnt; - } - if(drop) { - IFCImporter::LogVerboseDebug("removing duplicate vertices"); - } -} - -// ------------------------------------------------------------------------------------------------ -void TempMesh::Swap(TempMesh& other) -{ - mVertcnt.swap(other.mVertcnt); - mVerts.swap(other.mVerts); -} - -// ------------------------------------------------------------------------------------------------ -bool IsTrue(const ::Assimp::STEP::EXPRESS::BOOLEAN& in) -{ - return (std::string)in == "TRUE" || (std::string)in == "T"; -} - -// ------------------------------------------------------------------------------------------------ -IfcFloat ConvertSIPrefix(const std::string& prefix) -{ - if (prefix == "EXA") { - return 1e18f; - } - else if (prefix == "PETA") { - return 1e15f; - } - else if (prefix == "TERA") { - return 1e12f; - } - else if (prefix == "GIGA") { - return 1e9f; - } - else if (prefix == "MEGA") { - return 1e6f; - } - else if (prefix == "KILO") { - return 1e3f; - } - else if (prefix == "HECTO") { - return 1e2f; - } - else if (prefix == "DECA") { - return 1e-0f; - } - else if (prefix == "DECI") { - return 1e-1f; - } - else if (prefix == "CENTI") { - return 1e-2f; - } - else if (prefix == "MILLI") { - return 1e-3f; - } - else if (prefix == "MICRO") { - return 1e-6f; - } - else if (prefix == "NANO") { - return 1e-9f; - } - else if (prefix == "PICO") { - return 1e-12f; - } - else if (prefix == "FEMTO") { - return 1e-15f; - } - else if (prefix == "ATTO") { - return 1e-18f; - } - else { - IFCImporter::LogError("Unrecognized SI prefix: ", prefix); - return 1; - } -} - -// ------------------------------------------------------------------------------------------------ -void ConvertColor(aiColor4D& out, const Schema_2x3::IfcColourRgb& in) -{ - out.r = static_cast( in.Red ); - out.g = static_cast( in.Green ); - out.b = static_cast( in.Blue ); - out.a = static_cast( 1.f ); -} - -// ------------------------------------------------------------------------------------------------ -void ConvertColor(aiColor4D& out, const Schema_2x3::IfcColourOrFactor& in,ConversionData& conv,const aiColor4D* base) -{ - if (const ::Assimp::STEP::EXPRESS::REAL* const r = in.ToPtr<::Assimp::STEP::EXPRESS::REAL>()) { - out.r = out.g = out.b = static_cast(*r); - if(base) { - out.r *= static_cast( base->r ); - out.g *= static_cast( base->g ); - out.b *= static_cast( base->b ); - out.a = static_cast( base->a ); - } - else out.a = 1.0; - } - else if (const Schema_2x3::IfcColourRgb* const rgb = in.ResolveSelectPtr(conv.db)) { - ConvertColor(out,*rgb); - } - else { - IFCImporter::LogWarn("skipping unknown IfcColourOrFactor entity"); - } -} - -// ------------------------------------------------------------------------------------------------ -void ConvertCartesianPoint(IfcVector3& out, const Schema_2x3::IfcCartesianPoint& in) -{ - out = IfcVector3(); - for(size_t i = 0; i < in.Coordinates.size(); ++i) { - out[static_cast(i)] = in.Coordinates[i]; - } -} - -// ------------------------------------------------------------------------------------------------ -void ConvertVector(IfcVector3& out, const Schema_2x3::IfcVector& in) -{ - ConvertDirection(out,in.Orientation); - out *= in.Magnitude; -} - -// ------------------------------------------------------------------------------------------------ -void ConvertDirection(IfcVector3& out, const Schema_2x3::IfcDirection& in) -{ - out = IfcVector3(); - for(size_t i = 0; i < in.DirectionRatios.size(); ++i) { - out[static_cast(i)] = in.DirectionRatios[i]; - } - const IfcFloat len = out.Length(); - if (len < ai_epsilon) { - IFCImporter::LogWarn("direction vector magnitude too small, normalization would result in a division by zero"); - return; - } - out /= len; -} - -// ------------------------------------------------------------------------------------------------ -void AssignMatrixAxes(IfcMatrix4& out, const IfcVector3& x, const IfcVector3& y, const IfcVector3& z) -{ - out.a1 = x.x; - out.b1 = x.y; - out.c1 = x.z; - - out.a2 = y.x; - out.b2 = y.y; - out.c2 = y.z; - - out.a3 = z.x; - out.b3 = z.y; - out.c3 = z.z; -} - -// ------------------------------------------------------------------------------------------------ -void ConvertAxisPlacement(IfcMatrix4& out, const Schema_2x3::IfcAxis2Placement3D& in) -{ - IfcVector3 loc; - ConvertCartesianPoint(loc,in.Location); - - IfcVector3 z(0.f,0.f,1.f),r(1.f,0.f,0.f),x; - - if (in.Axis) { - ConvertDirection(z,*in.Axis.Get()); - } - if (in.RefDirection) { - ConvertDirection(r,*in.RefDirection.Get()); - } - - IfcVector3 v = r.Normalize(); - IfcVector3 tmpx = z * (v*z); - - x = (v-tmpx).Normalize(); - IfcVector3 y = (z^x); - - IfcMatrix4::Translation(loc,out); - AssignMatrixAxes(out,x,y,z); -} - -// ------------------------------------------------------------------------------------------------ -void ConvertAxisPlacement(IfcMatrix4& out, const Schema_2x3::IfcAxis2Placement2D& in) -{ - IfcVector3 loc; - ConvertCartesianPoint(loc,in.Location); - - IfcVector3 x(1.f,0.f,0.f); - if (in.RefDirection) { - ConvertDirection(x,*in.RefDirection.Get()); - } - - const IfcVector3 y = IfcVector3(x.y,-x.x,0.f); - - IfcMatrix4::Translation(loc,out); - AssignMatrixAxes(out,x,y,IfcVector3(0.f,0.f,1.f)); -} - -// ------------------------------------------------------------------------------------------------ -void ConvertAxisPlacement(IfcVector3& axis, IfcVector3& pos, const Schema_2x3::IfcAxis1Placement& in) -{ - ConvertCartesianPoint(pos,in.Location); - if (in.Axis) { - ConvertDirection(axis,in.Axis.Get()); - } - else { - axis = IfcVector3(0.f,0.f,1.f); - } -} - -// ------------------------------------------------------------------------------------------------ -void ConvertAxisPlacement(IfcMatrix4& out, const Schema_2x3::IfcAxis2Placement& in, ConversionData& conv) -{ - if(const Schema_2x3::IfcAxis2Placement3D* pl3 = in.ResolveSelectPtr(conv.db)) { - ConvertAxisPlacement(out,*pl3); - } - else if(const Schema_2x3::IfcAxis2Placement2D* pl2 = in.ResolveSelectPtr(conv.db)) { - ConvertAxisPlacement(out,*pl2); - } - else { - IFCImporter::LogWarn("skipping unknown IfcAxis2Placement entity"); - } -} - -// ------------------------------------------------------------------------------------------------ -void ConvertTransformOperator(IfcMatrix4& out, const Schema_2x3::IfcCartesianTransformationOperator& op) -{ - IfcVector3 loc; - ConvertCartesianPoint(loc,op.LocalOrigin); - - IfcVector3 x(1.f,0.f,0.f),y(0.f,1.f,0.f),z(0.f,0.f,1.f); - if (op.Axis1) { - ConvertDirection(x,*op.Axis1.Get()); - } - if (op.Axis2) { - ConvertDirection(y,*op.Axis2.Get()); - } - if (const Schema_2x3::IfcCartesianTransformationOperator3D* op2 = op.ToPtr()) { - if(op2->Axis3) { - ConvertDirection(z,*op2->Axis3.Get()); - } - } - - IfcMatrix4 locm; - IfcMatrix4::Translation(loc,locm); - AssignMatrixAxes(out,x,y,z); - - - IfcVector3 vscale; - if (const Schema_2x3::IfcCartesianTransformationOperator3DnonUniform* nuni = op.ToPtr()) { - vscale.x = nuni->Scale?op.Scale.Get():1.f; - vscale.y = nuni->Scale2?nuni->Scale2.Get():1.f; - vscale.z = nuni->Scale3?nuni->Scale3.Get():1.f; - } - else { - const IfcFloat sc = op.Scale?op.Scale.Get():1.f; - vscale = IfcVector3(sc,sc,sc); - } - - IfcMatrix4 s; - IfcMatrix4::Scaling(vscale,s); - - out = locm * out * s; -} - - -} // ! IFC -} // ! Assimp - -#endif diff --git a/libs/assimp/code/AssetLib/IFC/IFCUtil.h b/libs/assimp/code/AssetLib/IFC/IFCUtil.h deleted file mode 100644 index b5f72a5..0000000 --- a/libs/assimp/code/AssetLib/IFC/IFCUtil.h +++ /dev/null @@ -1,411 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file IFC.cpp - * @brief Implementation of the Industry Foundation Classes loader. - */ - -#ifndef INCLUDED_IFCUTIL_H -#define INCLUDED_IFCUTIL_H - -#include "AssetLib/IFC/IFCReaderGen_2x3.h" -#include "AssetLib/IFC/IFCLoader.h" -#include "AssetLib/Step/STEPFile.h" - -#include -#include - -#include - -struct aiNode; - -namespace Assimp { -namespace IFC { - - typedef double IfcFloat; - - // IfcFloat-precision math data types - typedef aiVector2t IfcVector2; - typedef aiVector3t IfcVector3; - typedef aiMatrix4x4t IfcMatrix4; - typedef aiMatrix3x3t IfcMatrix3; - typedef aiColor4t IfcColor4; - - -// ------------------------------------------------------------------------------------------------ -// Helper for std::for_each to delete all heap-allocated items in a container -// ------------------------------------------------------------------------------------------------ -template -struct delete_fun { - void operator()(T* del) { - delete del; - } -}; - - - -// ------------------------------------------------------------------------------------------------ -// Helper used during mesh construction. Aids at creating aiMesh'es out of relatively few polygons. -// ------------------------------------------------------------------------------------------------ -struct TempMesh { - std::vector mVerts; - std::vector mVertcnt; - - // utilities - aiMesh* ToMesh(); - void Clear(); - void Transform(const IfcMatrix4& mat); - IfcVector3 Center() const; - void Append(const TempMesh& other); - bool IsEmpty() const; - void RemoveAdjacentDuplicates(); - void RemoveDegenerates(); - void FixupFaceOrientation(); - static IfcVector3 ComputePolygonNormal(const IfcVector3* vtcs, size_t cnt, bool normalize = true); - IfcVector3 ComputeLastPolygonNormal(bool normalize = true) const; - void ComputePolygonNormals(std::vector& normals, bool normalize = true, size_t ofs = 0) const; - void Swap(TempMesh& other); -}; - -inline -bool TempMesh::IsEmpty() const { - return mVerts.empty() && mVertcnt.empty(); -} - - -// ------------------------------------------------------------------------------------------------ -// Temporary representation of an opening in a wall or a floor -// ------------------------------------------------------------------------------------------------ -struct TempOpening -{ - const IFC::Schema_2x3::IfcSolidModel *solid; - IfcVector3 extrusionDir; - - std::shared_ptr profileMesh; - std::shared_ptr profileMesh2D; - - // list of points generated for this opening. This is used to - // create connections between two opposing holes created - // from a single opening instance (two because walls tend to - // have two sides). If !empty(), the other side of the wall - // has already been processed. - std::vector wallPoints; - - // ------------------------------------------------------------------------------ - TempOpening() - : solid() - , extrusionDir() - , profileMesh() - { - } - - // ------------------------------------------------------------------------------ - TempOpening(const IFC::Schema_2x3::IfcSolidModel *solid, IfcVector3 extrusionDir, - std::shared_ptr profileMesh, - std::shared_ptr profileMesh2D) : - solid(solid), extrusionDir(extrusionDir), profileMesh(std::move(profileMesh)), profileMesh2D(std::move(profileMesh2D)) { - } - - // ------------------------------------------------------------------------------ - void Transform(const IfcMatrix4& mat); // defined later since TempMesh is not complete yet - - - - // ------------------------------------------------------------------------------ - // Helper to sort openings by distance from a given base point - struct DistanceSorter { - - DistanceSorter(const IfcVector3& base) : base(base) {} - - bool operator () (const TempOpening& a, const TempOpening& b) const { - return (a.profileMesh->Center()-base).SquareLength() < (b.profileMesh->Center()-base).SquareLength(); - } - - IfcVector3 base; - }; -}; - - -// ------------------------------------------------------------------------------------------------ -// Intermediate data storage during conversion. Keeps everything and a bit more. -// ------------------------------------------------------------------------------------------------ -struct ConversionData -{ - ConversionData(const STEP::DB& db, const IFC::Schema_2x3::IfcProject& proj, aiScene* out,const IFCImporter::Settings& settings) - : len_scale(1.0) - , angle_scale(-1.0) - , db(db) - , proj(proj) - , out(out) - , settings(settings) - , apply_openings() - , collect_openings() - {} - - ~ConversionData() { - std::for_each(meshes.begin(),meshes.end(),delete_fun()); - std::for_each(materials.begin(),materials.end(),delete_fun()); - } - - IfcFloat len_scale, angle_scale; - bool plane_angle_in_radians; - - const STEP::DB& db; - const IFC::Schema_2x3::IfcProject& proj; - aiScene* out; - - IfcMatrix4 wcs; - std::vector meshes; - std::vector materials; - - struct MeshCacheIndex { - const IFC::Schema_2x3::IfcRepresentationItem* item; unsigned int matindex; - MeshCacheIndex() : item(nullptr), matindex(0) { } - MeshCacheIndex(const IFC::Schema_2x3::IfcRepresentationItem* i, unsigned int mi) : item(i), matindex(mi) { } - bool operator == (const MeshCacheIndex& o) const { return item == o.item && matindex == o.matindex; } - bool operator < (const MeshCacheIndex& o) const { return item < o.item || (item == o.item && matindex < o.matindex); } - }; - typedef std::map > MeshCache; - MeshCache cached_meshes; - - typedef std::map MaterialCache; - MaterialCache cached_materials; - - const IFCImporter::Settings& settings; - - // Intermediate arrays used to resolve openings in walls: only one of them - // can be given at a time. apply_openings if present if the current element - // is a wall and needs its openings to be poured into its geometry while - // collect_openings is present only if the current element is an - // IfcOpeningElement, for which all the geometry needs to be preserved - // for later processing by a parent, which is a wall. - std::vector* apply_openings; - std::vector* collect_openings; - - std::set already_processed; -}; - - -// ------------------------------------------------------------------------------------------------ -// Binary predicate to compare vectors with a given, quadratic epsilon. -// ------------------------------------------------------------------------------------------------ -struct FuzzyVectorCompare { - - FuzzyVectorCompare(IfcFloat epsilon) : epsilon(epsilon) {} - bool operator()(const IfcVector3& a, const IfcVector3& b) { - return std::abs((a-b).SquareLength()) < epsilon; - } - - const IfcFloat epsilon; -}; - - -// ------------------------------------------------------------------------------------------------ -// Ordering predicate to totally order R^2 vectors first by x and then by y -// ------------------------------------------------------------------------------------------------ -struct XYSorter { - - // sort first by X coordinates, then by Y coordinates - bool operator () (const IfcVector2&a, const IfcVector2& b) const { - if (a.x == b.x) { - return a.y < b.y; - } - return a.x < b.x; - } -}; - - - -// conversion routines for common IFC entities, implemented in IFCUtil.cpp -void ConvertColor(aiColor4D& out, const Schema_2x3::IfcColourRgb& in); -void ConvertColor(aiColor4D& out, const Schema_2x3::IfcColourOrFactor& in,ConversionData& conv,const aiColor4D* base); -void ConvertCartesianPoint(IfcVector3& out, const Schema_2x3::IfcCartesianPoint& in); -void ConvertDirection(IfcVector3& out, const Schema_2x3::IfcDirection& in); -void ConvertVector(IfcVector3& out, const Schema_2x3::IfcVector& in); -void AssignMatrixAxes(IfcMatrix4& out, const IfcVector3& x, const IfcVector3& y, const IfcVector3& z); -void ConvertAxisPlacement(IfcMatrix4& out, const Schema_2x3::IfcAxis2Placement3D& in); -void ConvertAxisPlacement(IfcMatrix4& out, const Schema_2x3::IfcAxis2Placement2D& in); -void ConvertAxisPlacement(IfcVector3& axis, IfcVector3& pos, const IFC::Schema_2x3::IfcAxis1Placement& in); -void ConvertAxisPlacement(IfcMatrix4& out, const Schema_2x3::IfcAxis2Placement& in, ConversionData& conv); -void ConvertTransformOperator(IfcMatrix4& out, const Schema_2x3::IfcCartesianTransformationOperator& op); -bool IsTrue(const Assimp::STEP::EXPRESS::BOOLEAN& in); -IfcFloat ConvertSIPrefix(const std::string& prefix); - - -// IFCProfile.cpp -bool ProcessProfile(const Schema_2x3::IfcProfileDef& prof, TempMesh& meshout, ConversionData& conv); -bool ProcessCurve(const Schema_2x3::IfcCurve& curve, TempMesh& meshout, ConversionData& conv); - -// IFCMaterial.cpp -unsigned int ProcessMaterials(uint64_t id, unsigned int prevMatId, ConversionData& conv, bool forceDefaultMat); - -// IFCGeometry.cpp -IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh, bool& ok, IfcVector3& norOut); -bool ProcessRepresentationItem(const Schema_2x3::IfcRepresentationItem& item, unsigned int matid, std::set& mesh_indices, ConversionData& conv); -void AssignAddedMeshes(std::set& mesh_indices,aiNode* nd,ConversionData& /*conv*/); - -void ProcessSweptAreaSolid(const Schema_2x3::IfcSweptAreaSolid& swept, TempMesh& meshout, - ConversionData& conv); - -void ProcessExtrudedAreaSolid(const Schema_2x3::IfcExtrudedAreaSolid& solid, TempMesh& result, - ConversionData& conv, bool collect_openings); - -// IFCBoolean.cpp - -void ProcessBoolean(const Schema_2x3::IfcBooleanResult& boolean, TempMesh& result, ConversionData& conv); -void ProcessBooleanHalfSpaceDifference(const Schema_2x3::IfcHalfSpaceSolid* hs, TempMesh& result, - const TempMesh& first_operand, - ConversionData& conv); - -void ProcessPolygonalBoundedBooleanHalfSpaceDifference(const Schema_2x3::IfcPolygonalBoundedHalfSpace* hs, TempMesh& result, - const TempMesh& first_operand, - ConversionData& conv); -void ProcessBooleanExtrudedAreaSolidDifference(const Schema_2x3::IfcExtrudedAreaSolid* as, TempMesh& result, - const TempMesh& first_operand, - ConversionData& conv); - - -// IFCOpenings.cpp - -bool GenerateOpenings(std::vector& openings, - TempMesh& curmesh, - bool check_intersection, - bool generate_connection_geometry, - const IfcVector3& wall_extrusion_axis = IfcVector3(0,1,0)); - - - -// IFCCurve.cpp - -// ------------------------------------------------------------------------------------------------ -// Custom exception for use by members of the Curve class -// ------------------------------------------------------------------------------------------------ -class CurveError { -public: - CurveError(const std::string& s) - : mStr(s) { - // empty - } - - std::string mStr; -}; - -// ------------------------------------------------------------------------------------------------ -// Temporary representation for an arbitrary sub-class of IfcCurve. Used to sample the curves -// to obtain a list of line segments. -// ------------------------------------------------------------------------------------------------ -class Curve { -protected: - Curve(const Schema_2x3::IfcCurve& base_entity, ConversionData& conv) - : base_entity(base_entity) - , conv(conv) { - // empty - } - -public: - typedef std::pair ParamRange; - - virtual ~Curve() {} - - - // check if a curve is closed - virtual bool IsClosed() const = 0; - - // evaluate the curve at the given parametric position - virtual IfcVector3 Eval(IfcFloat p) const = 0; - - // try to match a point on the curve to a given parameter - // for self-intersecting curves, the result is not ambiguous and - // it is undefined which parameter is returned. - virtual bool ReverseEval(const IfcVector3& val, IfcFloat& paramOut) const; - - // get the range of the curve (both inclusive). - // +inf and -inf are valid return values, the curve is not bounded in such a case. - virtual std::pair GetParametricRange() const = 0; - IfcFloat GetParametricRangeDelta() const; - - // estimate the number of sample points that this curve will require - virtual size_t EstimateSampleCount(IfcFloat start,IfcFloat end) const; - - // intelligently sample the curve based on the current settings - // and append the result to the mesh - virtual void SampleDiscrete(TempMesh& out,IfcFloat start,IfcFloat end) const; - -#ifdef ASSIMP_BUILD_DEBUG - // check if a particular parameter value lies within the well-defined range - bool InRange(IfcFloat) const; -#endif - static Curve* Convert(const IFC::Schema_2x3::IfcCurve&,ConversionData& conv); - -protected: - const Schema_2x3::IfcCurve& base_entity; - ConversionData& conv; -}; - - -// -------------------------------------------------------------------------------- -// A BoundedCurve always holds the invariant that GetParametricRange() -// never returns infinite values. -// -------------------------------------------------------------------------------- -class BoundedCurve : public Curve { -public: - BoundedCurve(const Schema_2x3::IfcBoundedCurve& entity, ConversionData& conv) - : Curve(entity,conv) - {} - -public: - - bool IsClosed() const; - -public: - - // sample the entire curve - void SampleDiscrete(TempMesh& out) const; - using Curve::SampleDiscrete; -}; - -// IfcProfile.cpp -bool ProcessCurve(const Schema_2x3::IfcCurve& curve, TempMesh& meshout, ConversionData& conv); -} -} - -#endif -- cgit v1.2.1