- Fixed a bug regarding IfcUnitAssignment

- Separate IFC parsing library and geometry libraries [#3395025]
- Added example for IfcParse usage without geometry or Open CASCADE functionality
- Cleanup of vcproj Open CASCADE dependencies
- Added function to query parent class type in IfcExpressParser.py
This commit is contained in:
Thomas Krijnen
2011-08-24 12:21:07 +00:00
parent 0b45066736
commit 2561f94acb
36 changed files with 986 additions and 197 deletions
+15 -9
View File
@@ -65,22 +65,28 @@ ADD_DEFINITIONS(-fPIC)
INCLUDE_DIRECTORIES(${OCC_INCLUDE_DIR})
ADD_LIBRARY(IfcParse STATIC
../src/ifcparse/IfcGeomWires.cpp
../src/ifcparse/Ifc2x3.cpp
../src/ifcparse/IfcGeomHelpers.cpp
../src/ifcparse/IfcGeomFunctions.cpp
../src/ifcparse/IfcGeomObjects.cpp
../src/ifcparse/IfcGeomShapes.cpp
../src/ifcparse/IfcGeomFaces.cpp
../src/ifcparse/IfcRegister.cpp
../src/ifcparse/IfcUtil.cpp
../src/ifcparse/IfcGeomCurves.cpp
../src/ifcparse/IfcParse.cpp
)
ADD_LIBRARY(IfcGeom STATIC
../src/ifcgeom/IfcGeomCurves.cpp
../src/ifcgeom/IfcGeomFaces.cpp
../src/ifcgeom/IfcGeomFunctions.cpp
../src/ifcgeom/IfcGeomHelpers.cpp
../src/ifcgeom/IfcGeomObjects.cpp
../src/ifcgeom/IfcGeomShapes.cpp
../src/ifcgeom/IfcGeomWires.cpp
../src/ifcgeom/IfcRegister.cpp
)
LINK_DIRECTORIES (${IfcOpenShell_BINARY_DIR} /usr/lib)
ADD_EXECUTABLE(IfcObj ../src/ifcobj/IfcObj.cpp)
TARGET_LINK_LIBRARIES (IfcObj IfcParse TKernel TKMath TKBRep TKGeomBase TKGeomAlgo TKG3d TKG2d TKShHealing TKTopAlgo TKMesh TKPrim TKBool TKBO TKFillet)
TARGET_LINK_LIBRARIES (IfcObj IfcParse IfcGeom TKernel TKMath TKBRep TKGeomBase TKGeomAlgo TKG3d TKG2d TKShHealing TKTopAlgo TKMesh TKPrim TKBool TKBO TKFillet)
# Build python wrapper using separate CMakeLists.txt
ADD_SUBDIRECTORY(../src/ifcwrap ifcwrap)
# Build IfcParseExamples using separate CMakeLists.txt
ADD_SUBDIRECTORY(../src/examples examples)
+2
View File
@@ -0,0 +1,2 @@
ADD_EXECUTABLE(IfcParseExamples ../src/examples/IfcParseExamples.cpp)
TARGET_LINK_LIBRARIES (IfcParseExamples IfcParse)
+81
View File
@@ -0,0 +1,81 @@
/********************************************************************************
* *
* This file is part of IfcOpenShell. *
* *
* IfcOpenShell is free software: you can redistribute it and/or modify *
* it under the terms of the Lesser GNU General Public License as published by *
* the Free Software Foundation, either version 3.0 of the License, or *
* (at your option) any later version. *
* *
* IfcOpenShell is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* Lesser GNU General Public License for more details. *
* *
* You should have received a copy of the Lesser GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
* *
********************************************************************************/
#include "../ifcparse/IfcParse.h"
using namespace Ifc2x3;
int main(int argc, char** argv) {
if ( argc != 2 ) {
std::cout << "usage: IfcParseExamples <filename.ifc>" << std::endl;
return 1;
}
// Redirect the output (both progress and log) to stdout
Ifc::SetOutput(&std::cout,&std::cout);
// Parse the IFC file provided in argv[1]
if ( ! Ifc::Init(argv[1]) ) {
std::cout << "Unable to parse .ifc file" << std::endl;
return 1;
}
// Lets get a list of IfcBuildingElements, this is the parent
// type of things like walls, windows and doors.
// EntitiesByType is a templated function and returns a
// templated class that behaves like a std::vector.
// Note that the return types are all typedef'ed as members of
// the generated classes, ::list for the templated vector class,
// ::ptr for a shared pointer and ::it for an iterator.
// We will simply iterate over the vector and print a string
// representation of the entity to stdout.
//
// Secondly, lets find out which of them are IfcWindows.
// In order to access the additional properties that windows
// have on top af the properties of building elements,
// we need to cast them to IfcWindows. Since these properties
// are optional we need to make sure the properties are
// defined for the window in question before accessing them.
//
// Since we are accessing properties that represent a length
// measure we can multiply the value by Ifc::LengthUnit, which
// contains the ratio of the unit defined in the IfcUnitAssignment
// to the standard SI Unit, the meter.
IfcBuildingElement::list elements = Ifc::EntitiesByType<IfcBuildingElement>();
std::cout << "Found " << elements->Size() << " elements in " << argv[1] << ":" << std::endl;
for ( IfcBuildingElement::it it = elements->begin(); it != elements->end(); ++ it ) {
const IfcBuildingElement::ptr element = *it;
std::cout << element->entity->toString() << std::endl;
if ( element->is(IfcWindow::Class()) ) {
const IfcWindow::ptr window = reinterpret_pointer_cast<IfcBuildingElement,IfcWindow>(element);
if ( window->hasOverallWidth() && window->hasOverallHeight() ) {
const float area = window->OverallWidth()*window->OverallHeight() * (Ifc::LengthUnit*Ifc::LengthUnit);
std::cout << "This window has an area of " << area << "m2" << std::endl;
}
}
}
}
+9
View File
@@ -381,6 +381,7 @@ namespace Type {
typedef enum {
%(enum)s
} Enum;
Enum Parent(Enum v);
Enum FromString(const std::string& s);
std::string ToString(Enum v);
}
@@ -450,6 +451,14 @@ for e in all_enumerations:
print >>cpp_file, " throw;"
print >>cpp_file, "}"
print >>cpp_file, "Type::Enum Type::Parent(Enum v){"
print >>cpp_file, " if (v < 0 || v >= %d) return -1;"%len(all_enumerations)
for e in entity_enumerations:
if e not in parent_relations: continue
print >>cpp_file, ' if(v==%s%s) { return %s; }'%(e," "*(maxlen-len(e)),parent_relations[e])
print >>cpp_file, " return -1;"
print >>cpp_file, "}"
for t in [T for T in types if isinstance(T.type,EnumType)]:
print >>cpp_file, t
for e in entities: print >>cpp_file, e,
@@ -72,7 +72,7 @@
#include <TopLoc_Location.hxx>
#include "../ifcparse/IfcGeom.h"
#include "../ifcgeom/IfcGeom.h"
bool IfcGeom::convert(const Ifc2x3::IfcCircle::ptr& l, Handle(Geom_Curve)& curve) {
const float r = l->Radius() * Ifc::LengthUnit;
@@ -74,7 +74,7 @@
#include <TopLoc_Location.hxx>
#include "../ifcparse/IfcGeom.h"
#include "../ifcgeom/IfcGeom.h"
bool IfcGeom::convert(const Ifc2x3::IfcFace::ptr& l, TopoDS_Face& face) {
Ifc2x3::IfcFaceBound::list bounds = l->Bounds();
@@ -72,7 +72,7 @@
#include <TopLoc_Location.hxx>
#include "../ifcparse/IfcGeom.h"
#include "../ifcgeom/IfcGeom.h"
bool IfcGeom::convert_openings(const Ifc2x3::IfcProduct::ptr& entity,
const Ifc2x3::IfcRelVoidsElement::list& openings, TopoDS_Shape& result, const gp_Trsf& trsf2) {
@@ -72,7 +72,7 @@
#include <TopLoc_Location.hxx>
#include "../ifcparse/IfcGeom.h"
#include "../ifcgeom/IfcGeom.h"
namespace IfcGeom {
@@ -33,8 +33,8 @@
#include <Poly_Array1OfTriangle.hxx>
#include <StdFail_NotDone.hxx>
#include "../ifcparse/IfcGeomObjects.h"
#include "../ifcparse/IfcGeom.h"
#include "../ifcgeom/IfcGeomObjects.h"
#include "../ifcgeom/IfcGeom.h"
// Welds vertices that belong to different faces
int IfcGeomObjects::IfcMesh::addvert(gp_Pnt p) {
@@ -72,7 +72,7 @@
#include <TopLoc_Location.hxx>
#include "../ifcparse/IfcGeom.h"
#include "../ifcgeom/IfcGeom.h"
bool IfcGeom::convert(const Ifc2x3::IfcExtrudedAreaSolid::ptr& l, TopoDS_Shape& shape) {
TopoDS_Face face;
@@ -72,7 +72,7 @@
#include <TopLoc_Location.hxx>
#include "../ifcparse/IfcGeom.h"
#include "../ifcgeom/IfcGeom.h"
bool IfcGeom::convert(const Ifc2x3::IfcCompositeCurve::ptr& l, TopoDS_Wire& wire) {
Ifc2x3::IfcCompositeCurveSegment::list segments = l->Segments();
+6 -3
View File
@@ -30,7 +30,7 @@
#include <set>
#include <time.h>
#include "../ifcparse/IfcGeomObjects.h"
#include "../ifcgeom/IfcGeomObjects.h"
#include "../ifcobj/ObjMaterials.h"
int main ( int argc, char** argv ) {
@@ -102,8 +102,11 @@ int main ( int argc, char** argv ) {
fMtl << GetMaterial(*it);
}
std::cout << std::endl << "Log:" << std::endl;
std::cout << ss.str();
std::string log = ss.str();
if ( log.size() ) {
std::cout << std::endl << "Log:" << std::endl;
std::cout << ss.str();
}
time(&end);
int dif = (int) difftime (end,start);
+556
View File
@@ -1557,6 +1557,562 @@ Type::Enum Type::FromString(const std::string& s){
if(s=="IFCZONE" ) { return IfcZone; }
throw;
}
Type::Enum Type::Parent(Enum v){
if (v < 0 || v >= 758) return (Enum) -1;
if(v==Ifc2DCompositeCurve ) { return IfcCompositeCurve; }
if(v==IfcActionRequest ) { return IfcControl; }
if(v==IfcActor ) { return IfcObject; }
if(v==IfcActuatorType ) { return IfcDistributionControlElementType; }
if(v==IfcAirTerminalBoxType ) { return IfcFlowControllerType; }
if(v==IfcAirTerminalType ) { return IfcFlowTerminalType; }
if(v==IfcAirToAirHeatRecoveryType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcAlarmType ) { return IfcDistributionControlElementType; }
if(v==IfcAngularDimension ) { return IfcDimensionCurveDirectedCallout; }
if(v==IfcAnnotation ) { return IfcProduct; }
if(v==IfcAnnotationCurveOccurrence ) { return IfcAnnotationOccurrence; }
if(v==IfcAnnotationFillArea ) { return IfcGeometricRepresentationItem; }
if(v==IfcAnnotationFillAreaOccurrence ) { return IfcAnnotationOccurrence; }
if(v==IfcAnnotationOccurrence ) { return IfcStyledItem; }
if(v==IfcAnnotationSurface ) { return IfcGeometricRepresentationItem; }
if(v==IfcAnnotationSurfaceOccurrence ) { return IfcAnnotationOccurrence; }
if(v==IfcAnnotationSymbolOccurrence ) { return IfcAnnotationOccurrence; }
if(v==IfcAnnotationTextOccurrence ) { return IfcAnnotationOccurrence; }
if(v==IfcArbitraryClosedProfileDef ) { return IfcProfileDef; }
if(v==IfcArbitraryOpenProfileDef ) { return IfcProfileDef; }
if(v==IfcArbitraryProfileDefWithVoids ) { return IfcArbitraryClosedProfileDef; }
if(v==IfcAsset ) { return IfcGroup; }
if(v==IfcAsymmetricIShapeProfileDef ) { return IfcIShapeProfileDef; }
if(v==IfcAxis1Placement ) { return IfcPlacement; }
if(v==IfcAxis2Placement2D ) { return IfcPlacement; }
if(v==IfcAxis2Placement3D ) { return IfcPlacement; }
if(v==IfcBSplineCurve ) { return IfcBoundedCurve; }
if(v==IfcBeam ) { return IfcBuildingElement; }
if(v==IfcBeamType ) { return IfcBuildingElementType; }
if(v==IfcBezierCurve ) { return IfcBSplineCurve; }
if(v==IfcBlobTexture ) { return IfcSurfaceTexture; }
if(v==IfcBlock ) { return IfcCsgPrimitive3D; }
if(v==IfcBoilerType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcBooleanClippingResult ) { return IfcBooleanResult; }
if(v==IfcBooleanResult ) { return IfcGeometricRepresentationItem; }
if(v==IfcBoundaryEdgeCondition ) { return IfcBoundaryCondition; }
if(v==IfcBoundaryFaceCondition ) { return IfcBoundaryCondition; }
if(v==IfcBoundaryNodeCondition ) { return IfcBoundaryCondition; }
if(v==IfcBoundaryNodeConditionWarping ) { return IfcBoundaryNodeCondition; }
if(v==IfcBoundedCurve ) { return IfcCurve; }
if(v==IfcBoundedSurface ) { return IfcSurface; }
if(v==IfcBoundingBox ) { return IfcGeometricRepresentationItem; }
if(v==IfcBoxedHalfSpace ) { return IfcHalfSpaceSolid; }
if(v==IfcBuilding ) { return IfcSpatialStructureElement; }
if(v==IfcBuildingElement ) { return IfcElement; }
if(v==IfcBuildingElementComponent ) { return IfcBuildingElement; }
if(v==IfcBuildingElementPart ) { return IfcBuildingElementComponent; }
if(v==IfcBuildingElementProxy ) { return IfcBuildingElement; }
if(v==IfcBuildingElementProxyType ) { return IfcBuildingElementType; }
if(v==IfcBuildingElementType ) { return IfcElementType; }
if(v==IfcBuildingStorey ) { return IfcSpatialStructureElement; }
if(v==IfcCShapeProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcCableCarrierFittingType ) { return IfcFlowFittingType; }
if(v==IfcCableCarrierSegmentType ) { return IfcFlowSegmentType; }
if(v==IfcCableSegmentType ) { return IfcFlowSegmentType; }
if(v==IfcCartesianPoint ) { return IfcPoint; }
if(v==IfcCartesianTransformationOperator ) { return IfcGeometricRepresentationItem; }
if(v==IfcCartesianTransformationOperator2D ) { return IfcCartesianTransformationOperator; }
if(v==IfcCartesianTransformationOperator2DnonUniform) { return IfcCartesianTransformationOperator2D; }
if(v==IfcCartesianTransformationOperator3D ) { return IfcCartesianTransformationOperator; }
if(v==IfcCartesianTransformationOperator3DnonUniform) { return IfcCartesianTransformationOperator3D; }
if(v==IfcCenterLineProfileDef ) { return IfcArbitraryOpenProfileDef; }
if(v==IfcChamferEdgeFeature ) { return IfcEdgeFeature; }
if(v==IfcChillerType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcCircle ) { return IfcConic; }
if(v==IfcCircleHollowProfileDef ) { return IfcCircleProfileDef; }
if(v==IfcCircleProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcClassificationReference ) { return IfcExternalReference; }
if(v==IfcClosedShell ) { return IfcConnectedFaceSet; }
if(v==IfcCoilType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcColourRgb ) { return IfcColourSpecification; }
if(v==IfcColumn ) { return IfcBuildingElement; }
if(v==IfcColumnType ) { return IfcBuildingElementType; }
if(v==IfcComplexProperty ) { return IfcProperty; }
if(v==IfcCompositeCurve ) { return IfcBoundedCurve; }
if(v==IfcCompositeCurveSegment ) { return IfcGeometricRepresentationItem; }
if(v==IfcCompositeProfileDef ) { return IfcProfileDef; }
if(v==IfcCompressorType ) { return IfcFlowMovingDeviceType; }
if(v==IfcCondenserType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcCondition ) { return IfcGroup; }
if(v==IfcConditionCriterion ) { return IfcControl; }
if(v==IfcConic ) { return IfcCurve; }
if(v==IfcConnectedFaceSet ) { return IfcTopologicalRepresentationItem; }
if(v==IfcConnectionCurveGeometry ) { return IfcConnectionGeometry; }
if(v==IfcConnectionPointEccentricity ) { return IfcConnectionPointGeometry; }
if(v==IfcConnectionPointGeometry ) { return IfcConnectionGeometry; }
if(v==IfcConnectionPortGeometry ) { return IfcConnectionGeometry; }
if(v==IfcConnectionSurfaceGeometry ) { return IfcConnectionGeometry; }
if(v==IfcConstructionEquipmentResource ) { return IfcConstructionResource; }
if(v==IfcConstructionMaterialResource ) { return IfcConstructionResource; }
if(v==IfcConstructionProductResource ) { return IfcConstructionResource; }
if(v==IfcConstructionResource ) { return IfcResource; }
if(v==IfcContextDependentUnit ) { return IfcNamedUnit; }
if(v==IfcControl ) { return IfcObject; }
if(v==IfcControllerType ) { return IfcDistributionControlElementType; }
if(v==IfcConversionBasedUnit ) { return IfcNamedUnit; }
if(v==IfcCooledBeamType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcCoolingTowerType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcCostItem ) { return IfcControl; }
if(v==IfcCostSchedule ) { return IfcControl; }
if(v==IfcCostValue ) { return IfcAppliedValue; }
if(v==IfcCovering ) { return IfcBuildingElement; }
if(v==IfcCoveringType ) { return IfcBuildingElementType; }
if(v==IfcCraneRailAShapeProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcCraneRailFShapeProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcCrewResource ) { return IfcConstructionResource; }
if(v==IfcCsgPrimitive3D ) { return IfcGeometricRepresentationItem; }
if(v==IfcCsgSolid ) { return IfcSolidModel; }
if(v==IfcCurtainWall ) { return IfcBuildingElement; }
if(v==IfcCurtainWallType ) { return IfcBuildingElementType; }
if(v==IfcCurve ) { return IfcGeometricRepresentationItem; }
if(v==IfcCurveBoundedPlane ) { return IfcBoundedSurface; }
if(v==IfcCurveStyle ) { return IfcPresentationStyle; }
if(v==IfcDamperType ) { return IfcFlowControllerType; }
if(v==IfcDefinedSymbol ) { return IfcGeometricRepresentationItem; }
if(v==IfcDerivedProfileDef ) { return IfcProfileDef; }
if(v==IfcDiameterDimension ) { return IfcDimensionCurveDirectedCallout; }
if(v==IfcDimensionCalloutRelationship ) { return IfcDraughtingCalloutRelationship; }
if(v==IfcDimensionCurve ) { return IfcAnnotationCurveOccurrence; }
if(v==IfcDimensionCurveDirectedCallout ) { return IfcDraughtingCallout; }
if(v==IfcDimensionCurveTerminator ) { return IfcTerminatorSymbol; }
if(v==IfcDimensionPair ) { return IfcDraughtingCalloutRelationship; }
if(v==IfcDirection ) { return IfcGeometricRepresentationItem; }
if(v==IfcDiscreteAccessory ) { return IfcElementComponent; }
if(v==IfcDiscreteAccessoryType ) { return IfcElementComponentType; }
if(v==IfcDistributionChamberElement ) { return IfcDistributionFlowElement; }
if(v==IfcDistributionChamberElementType ) { return IfcDistributionFlowElementType; }
if(v==IfcDistributionControlElement ) { return IfcDistributionElement; }
if(v==IfcDistributionControlElementType ) { return IfcDistributionElementType; }
if(v==IfcDistributionElement ) { return IfcElement; }
if(v==IfcDistributionElementType ) { return IfcElementType; }
if(v==IfcDistributionFlowElement ) { return IfcDistributionElement; }
if(v==IfcDistributionFlowElementType ) { return IfcDistributionElementType; }
if(v==IfcDistributionPort ) { return IfcPort; }
if(v==IfcDocumentReference ) { return IfcExternalReference; }
if(v==IfcDoor ) { return IfcBuildingElement; }
if(v==IfcDoorLiningProperties ) { return IfcPropertySetDefinition; }
if(v==IfcDoorPanelProperties ) { return IfcPropertySetDefinition; }
if(v==IfcDoorStyle ) { return IfcTypeProduct; }
if(v==IfcDraughtingCallout ) { return IfcGeometricRepresentationItem; }
if(v==IfcDraughtingPreDefinedColour ) { return IfcPreDefinedColour; }
if(v==IfcDraughtingPreDefinedCurveFont ) { return IfcPreDefinedCurveFont; }
if(v==IfcDraughtingPreDefinedTextFont ) { return IfcPreDefinedTextFont; }
if(v==IfcDuctFittingType ) { return IfcFlowFittingType; }
if(v==IfcDuctSegmentType ) { return IfcFlowSegmentType; }
if(v==IfcDuctSilencerType ) { return IfcFlowTreatmentDeviceType; }
if(v==IfcEdge ) { return IfcTopologicalRepresentationItem; }
if(v==IfcEdgeCurve ) { return IfcEdge; }
if(v==IfcEdgeFeature ) { return IfcFeatureElementSubtraction; }
if(v==IfcEdgeLoop ) { return IfcLoop; }
if(v==IfcElectricApplianceType ) { return IfcFlowTerminalType; }
if(v==IfcElectricDistributionPoint ) { return IfcFlowController; }
if(v==IfcElectricFlowStorageDeviceType ) { return IfcFlowStorageDeviceType; }
if(v==IfcElectricGeneratorType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcElectricHeaterType ) { return IfcFlowTerminalType; }
if(v==IfcElectricMotorType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcElectricTimeControlType ) { return IfcFlowControllerType; }
if(v==IfcElectricalBaseProperties ) { return IfcEnergyProperties; }
if(v==IfcElectricalCircuit ) { return IfcSystem; }
if(v==IfcElectricalElement ) { return IfcElement; }
if(v==IfcElement ) { return IfcProduct; }
if(v==IfcElementAssembly ) { return IfcElement; }
if(v==IfcElementComponent ) { return IfcElement; }
if(v==IfcElementComponentType ) { return IfcElementType; }
if(v==IfcElementQuantity ) { return IfcPropertySetDefinition; }
if(v==IfcElementType ) { return IfcTypeProduct; }
if(v==IfcElementarySurface ) { return IfcSurface; }
if(v==IfcEllipse ) { return IfcConic; }
if(v==IfcEllipseProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcEnergyConversionDevice ) { return IfcDistributionFlowElement; }
if(v==IfcEnergyConversionDeviceType ) { return IfcDistributionFlowElementType; }
if(v==IfcEnergyProperties ) { return IfcPropertySetDefinition; }
if(v==IfcEnvironmentalImpactValue ) { return IfcAppliedValue; }
if(v==IfcEquipmentElement ) { return IfcElement; }
if(v==IfcEquipmentStandard ) { return IfcControl; }
if(v==IfcEvaporativeCoolerType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcEvaporatorType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcExtendedMaterialProperties ) { return IfcMaterialProperties; }
if(v==IfcExternallyDefinedHatchStyle ) { return IfcExternalReference; }
if(v==IfcExternallyDefinedSurfaceStyle ) { return IfcExternalReference; }
if(v==IfcExternallyDefinedSymbol ) { return IfcExternalReference; }
if(v==IfcExternallyDefinedTextFont ) { return IfcExternalReference; }
if(v==IfcExtrudedAreaSolid ) { return IfcSweptAreaSolid; }
if(v==IfcFace ) { return IfcTopologicalRepresentationItem; }
if(v==IfcFaceBasedSurfaceModel ) { return IfcGeometricRepresentationItem; }
if(v==IfcFaceBound ) { return IfcTopologicalRepresentationItem; }
if(v==IfcFaceOuterBound ) { return IfcFaceBound; }
if(v==IfcFaceSurface ) { return IfcFace; }
if(v==IfcFacetedBrep ) { return IfcManifoldSolidBrep; }
if(v==IfcFacetedBrepWithVoids ) { return IfcManifoldSolidBrep; }
if(v==IfcFailureConnectionCondition ) { return IfcStructuralConnectionCondition; }
if(v==IfcFanType ) { return IfcFlowMovingDeviceType; }
if(v==IfcFastener ) { return IfcElementComponent; }
if(v==IfcFastenerType ) { return IfcElementComponentType; }
if(v==IfcFeatureElement ) { return IfcElement; }
if(v==IfcFeatureElementAddition ) { return IfcFeatureElement; }
if(v==IfcFeatureElementSubtraction ) { return IfcFeatureElement; }
if(v==IfcFillAreaStyle ) { return IfcPresentationStyle; }
if(v==IfcFillAreaStyleHatching ) { return IfcGeometricRepresentationItem; }
if(v==IfcFillAreaStyleTileSymbolWithStyle ) { return IfcGeometricRepresentationItem; }
if(v==IfcFillAreaStyleTiles ) { return IfcGeometricRepresentationItem; }
if(v==IfcFilterType ) { return IfcFlowTreatmentDeviceType; }
if(v==IfcFireSuppressionTerminalType ) { return IfcFlowTerminalType; }
if(v==IfcFlowController ) { return IfcDistributionFlowElement; }
if(v==IfcFlowControllerType ) { return IfcDistributionFlowElementType; }
if(v==IfcFlowFitting ) { return IfcDistributionFlowElement; }
if(v==IfcFlowFittingType ) { return IfcDistributionFlowElementType; }
if(v==IfcFlowInstrumentType ) { return IfcDistributionControlElementType; }
if(v==IfcFlowMeterType ) { return IfcFlowControllerType; }
if(v==IfcFlowMovingDevice ) { return IfcDistributionFlowElement; }
if(v==IfcFlowMovingDeviceType ) { return IfcDistributionFlowElementType; }
if(v==IfcFlowSegment ) { return IfcDistributionFlowElement; }
if(v==IfcFlowSegmentType ) { return IfcDistributionFlowElementType; }
if(v==IfcFlowStorageDevice ) { return IfcDistributionFlowElement; }
if(v==IfcFlowStorageDeviceType ) { return IfcDistributionFlowElementType; }
if(v==IfcFlowTerminal ) { return IfcDistributionFlowElement; }
if(v==IfcFlowTerminalType ) { return IfcDistributionFlowElementType; }
if(v==IfcFlowTreatmentDevice ) { return IfcDistributionFlowElement; }
if(v==IfcFlowTreatmentDeviceType ) { return IfcDistributionFlowElementType; }
if(v==IfcFluidFlowProperties ) { return IfcPropertySetDefinition; }
if(v==IfcFooting ) { return IfcBuildingElement; }
if(v==IfcFuelProperties ) { return IfcMaterialProperties; }
if(v==IfcFurnishingElement ) { return IfcElement; }
if(v==IfcFurnishingElementType ) { return IfcElementType; }
if(v==IfcFurnitureStandard ) { return IfcControl; }
if(v==IfcFurnitureType ) { return IfcFurnishingElementType; }
if(v==IfcGasTerminalType ) { return IfcFlowTerminalType; }
if(v==IfcGeneralMaterialProperties ) { return IfcMaterialProperties; }
if(v==IfcGeneralProfileProperties ) { return IfcProfileProperties; }
if(v==IfcGeometricCurveSet ) { return IfcGeometricSet; }
if(v==IfcGeometricRepresentationContext ) { return IfcRepresentationContext; }
if(v==IfcGeometricRepresentationItem ) { return IfcRepresentationItem; }
if(v==IfcGeometricRepresentationSubContext ) { return IfcGeometricRepresentationContext; }
if(v==IfcGeometricSet ) { return IfcGeometricRepresentationItem; }
if(v==IfcGrid ) { return IfcProduct; }
if(v==IfcGridPlacement ) { return IfcObjectPlacement; }
if(v==IfcGroup ) { return IfcObject; }
if(v==IfcHalfSpaceSolid ) { return IfcGeometricRepresentationItem; }
if(v==IfcHeatExchangerType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcHumidifierType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcHygroscopicMaterialProperties ) { return IfcMaterialProperties; }
if(v==IfcIShapeProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcImageTexture ) { return IfcSurfaceTexture; }
if(v==IfcInventory ) { return IfcGroup; }
if(v==IfcIrregularTimeSeries ) { return IfcTimeSeries; }
if(v==IfcJunctionBoxType ) { return IfcFlowFittingType; }
if(v==IfcLShapeProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcLaborResource ) { return IfcConstructionResource; }
if(v==IfcLampType ) { return IfcFlowTerminalType; }
if(v==IfcLibraryReference ) { return IfcExternalReference; }
if(v==IfcLightFixtureType ) { return IfcFlowTerminalType; }
if(v==IfcLightSource ) { return IfcGeometricRepresentationItem; }
if(v==IfcLightSourceAmbient ) { return IfcLightSource; }
if(v==IfcLightSourceDirectional ) { return IfcLightSource; }
if(v==IfcLightSourceGoniometric ) { return IfcLightSource; }
if(v==IfcLightSourcePositional ) { return IfcLightSource; }
if(v==IfcLightSourceSpot ) { return IfcLightSourcePositional; }
if(v==IfcLine ) { return IfcCurve; }
if(v==IfcLinearDimension ) { return IfcDimensionCurveDirectedCallout; }
if(v==IfcLocalPlacement ) { return IfcObjectPlacement; }
if(v==IfcLoop ) { return IfcTopologicalRepresentationItem; }
if(v==IfcManifoldSolidBrep ) { return IfcSolidModel; }
if(v==IfcMappedItem ) { return IfcRepresentationItem; }
if(v==IfcMaterialDefinitionRepresentation ) { return IfcProductRepresentation; }
if(v==IfcMechanicalConcreteMaterialProperties ) { return IfcMechanicalMaterialProperties; }
if(v==IfcMechanicalFastener ) { return IfcFastener; }
if(v==IfcMechanicalFastenerType ) { return IfcFastenerType; }
if(v==IfcMechanicalMaterialProperties ) { return IfcMaterialProperties; }
if(v==IfcMechanicalSteelMaterialProperties ) { return IfcMechanicalMaterialProperties; }
if(v==IfcMember ) { return IfcBuildingElement; }
if(v==IfcMemberType ) { return IfcBuildingElementType; }
if(v==IfcMetric ) { return IfcConstraint; }
if(v==IfcMotorConnectionType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcMove ) { return IfcTask; }
if(v==IfcObject ) { return IfcObjectDefinition; }
if(v==IfcObjectDefinition ) { return IfcRoot; }
if(v==IfcObjective ) { return IfcConstraint; }
if(v==IfcOccupant ) { return IfcActor; }
if(v==IfcOffsetCurve2D ) { return IfcCurve; }
if(v==IfcOffsetCurve3D ) { return IfcCurve; }
if(v==IfcOneDirectionRepeatFactor ) { return IfcGeometricRepresentationItem; }
if(v==IfcOpenShell ) { return IfcConnectedFaceSet; }
if(v==IfcOpeningElement ) { return IfcFeatureElementSubtraction; }
if(v==IfcOpticalMaterialProperties ) { return IfcMaterialProperties; }
if(v==IfcOrderAction ) { return IfcTask; }
if(v==IfcOrientedEdge ) { return IfcEdge; }
if(v==IfcOutletType ) { return IfcFlowTerminalType; }
if(v==IfcParameterizedProfileDef ) { return IfcProfileDef; }
if(v==IfcPath ) { return IfcTopologicalRepresentationItem; }
if(v==IfcPerformanceHistory ) { return IfcControl; }
if(v==IfcPermeableCoveringProperties ) { return IfcPropertySetDefinition; }
if(v==IfcPermit ) { return IfcControl; }
if(v==IfcPhysicalComplexQuantity ) { return IfcPhysicalQuantity; }
if(v==IfcPhysicalSimpleQuantity ) { return IfcPhysicalQuantity; }
if(v==IfcPile ) { return IfcBuildingElement; }
if(v==IfcPipeFittingType ) { return IfcFlowFittingType; }
if(v==IfcPipeSegmentType ) { return IfcFlowSegmentType; }
if(v==IfcPixelTexture ) { return IfcSurfaceTexture; }
if(v==IfcPlacement ) { return IfcGeometricRepresentationItem; }
if(v==IfcPlanarBox ) { return IfcPlanarExtent; }
if(v==IfcPlanarExtent ) { return IfcGeometricRepresentationItem; }
if(v==IfcPlane ) { return IfcElementarySurface; }
if(v==IfcPlate ) { return IfcBuildingElement; }
if(v==IfcPlateType ) { return IfcBuildingElementType; }
if(v==IfcPoint ) { return IfcGeometricRepresentationItem; }
if(v==IfcPointOnCurve ) { return IfcPoint; }
if(v==IfcPointOnSurface ) { return IfcPoint; }
if(v==IfcPolyLoop ) { return IfcLoop; }
if(v==IfcPolygonalBoundedHalfSpace ) { return IfcHalfSpaceSolid; }
if(v==IfcPolyline ) { return IfcBoundedCurve; }
if(v==IfcPort ) { return IfcProduct; }
if(v==IfcPostalAddress ) { return IfcAddress; }
if(v==IfcPreDefinedColour ) { return IfcPreDefinedItem; }
if(v==IfcPreDefinedCurveFont ) { return IfcPreDefinedItem; }
if(v==IfcPreDefinedDimensionSymbol ) { return IfcPreDefinedSymbol; }
if(v==IfcPreDefinedPointMarkerSymbol ) { return IfcPreDefinedSymbol; }
if(v==IfcPreDefinedSymbol ) { return IfcPreDefinedItem; }
if(v==IfcPreDefinedTerminatorSymbol ) { return IfcPreDefinedSymbol; }
if(v==IfcPreDefinedTextFont ) { return IfcPreDefinedItem; }
if(v==IfcPresentationLayerWithStyle ) { return IfcPresentationLayerAssignment; }
if(v==IfcProcedure ) { return IfcProcess; }
if(v==IfcProcess ) { return IfcObject; }
if(v==IfcProduct ) { return IfcObject; }
if(v==IfcProductDefinitionShape ) { return IfcProductRepresentation; }
if(v==IfcProductsOfCombustionProperties ) { return IfcMaterialProperties; }
if(v==IfcProject ) { return IfcObject; }
if(v==IfcProjectOrder ) { return IfcControl; }
if(v==IfcProjectOrderRecord ) { return IfcControl; }
if(v==IfcProjectionCurve ) { return IfcAnnotationCurveOccurrence; }
if(v==IfcProjectionElement ) { return IfcFeatureElementAddition; }
if(v==IfcPropertyBoundedValue ) { return IfcSimpleProperty; }
if(v==IfcPropertyDefinition ) { return IfcRoot; }
if(v==IfcPropertyEnumeratedValue ) { return IfcSimpleProperty; }
if(v==IfcPropertyListValue ) { return IfcSimpleProperty; }
if(v==IfcPropertyReferenceValue ) { return IfcSimpleProperty; }
if(v==IfcPropertySet ) { return IfcPropertySetDefinition; }
if(v==IfcPropertySetDefinition ) { return IfcPropertyDefinition; }
if(v==IfcPropertySingleValue ) { return IfcSimpleProperty; }
if(v==IfcPropertyTableValue ) { return IfcSimpleProperty; }
if(v==IfcProtectiveDeviceType ) { return IfcFlowControllerType; }
if(v==IfcProxy ) { return IfcProduct; }
if(v==IfcPumpType ) { return IfcFlowMovingDeviceType; }
if(v==IfcQuantityArea ) { return IfcPhysicalSimpleQuantity; }
if(v==IfcQuantityCount ) { return IfcPhysicalSimpleQuantity; }
if(v==IfcQuantityLength ) { return IfcPhysicalSimpleQuantity; }
if(v==IfcQuantityTime ) { return IfcPhysicalSimpleQuantity; }
if(v==IfcQuantityVolume ) { return IfcPhysicalSimpleQuantity; }
if(v==IfcQuantityWeight ) { return IfcPhysicalSimpleQuantity; }
if(v==IfcRadiusDimension ) { return IfcDimensionCurveDirectedCallout; }
if(v==IfcRailing ) { return IfcBuildingElement; }
if(v==IfcRailingType ) { return IfcBuildingElementType; }
if(v==IfcRamp ) { return IfcBuildingElement; }
if(v==IfcRampFlight ) { return IfcBuildingElement; }
if(v==IfcRampFlightType ) { return IfcBuildingElementType; }
if(v==IfcRationalBezierCurve ) { return IfcBezierCurve; }
if(v==IfcRectangleHollowProfileDef ) { return IfcRectangleProfileDef; }
if(v==IfcRectangleProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcRectangularPyramid ) { return IfcCsgPrimitive3D; }
if(v==IfcRectangularTrimmedSurface ) { return IfcBoundedSurface; }
if(v==IfcRegularTimeSeries ) { return IfcTimeSeries; }
if(v==IfcReinforcementDefinitionProperties ) { return IfcPropertySetDefinition; }
if(v==IfcReinforcingBar ) { return IfcReinforcingElement; }
if(v==IfcReinforcingElement ) { return IfcBuildingElementComponent; }
if(v==IfcReinforcingMesh ) { return IfcReinforcingElement; }
if(v==IfcRelAggregates ) { return IfcRelDecomposes; }
if(v==IfcRelAssigns ) { return IfcRelationship; }
if(v==IfcRelAssignsTasks ) { return IfcRelAssignsToControl; }
if(v==IfcRelAssignsToActor ) { return IfcRelAssigns; }
if(v==IfcRelAssignsToControl ) { return IfcRelAssigns; }
if(v==IfcRelAssignsToGroup ) { return IfcRelAssigns; }
if(v==IfcRelAssignsToProcess ) { return IfcRelAssigns; }
if(v==IfcRelAssignsToProduct ) { return IfcRelAssigns; }
if(v==IfcRelAssignsToProjectOrder ) { return IfcRelAssignsToControl; }
if(v==IfcRelAssignsToResource ) { return IfcRelAssigns; }
if(v==IfcRelAssociates ) { return IfcRelationship; }
if(v==IfcRelAssociatesAppliedValue ) { return IfcRelAssociates; }
if(v==IfcRelAssociatesApproval ) { return IfcRelAssociates; }
if(v==IfcRelAssociatesClassification ) { return IfcRelAssociates; }
if(v==IfcRelAssociatesConstraint ) { return IfcRelAssociates; }
if(v==IfcRelAssociatesDocument ) { return IfcRelAssociates; }
if(v==IfcRelAssociatesLibrary ) { return IfcRelAssociates; }
if(v==IfcRelAssociatesMaterial ) { return IfcRelAssociates; }
if(v==IfcRelAssociatesProfileProperties ) { return IfcRelAssociates; }
if(v==IfcRelConnects ) { return IfcRelationship; }
if(v==IfcRelConnectsElements ) { return IfcRelConnects; }
if(v==IfcRelConnectsPathElements ) { return IfcRelConnectsElements; }
if(v==IfcRelConnectsPortToElement ) { return IfcRelConnects; }
if(v==IfcRelConnectsPorts ) { return IfcRelConnects; }
if(v==IfcRelConnectsStructuralActivity ) { return IfcRelConnects; }
if(v==IfcRelConnectsStructuralElement ) { return IfcRelConnects; }
if(v==IfcRelConnectsStructuralMember ) { return IfcRelConnects; }
if(v==IfcRelConnectsWithEccentricity ) { return IfcRelConnectsStructuralMember; }
if(v==IfcRelConnectsWithRealizingElements ) { return IfcRelConnectsElements; }
if(v==IfcRelContainedInSpatialStructure ) { return IfcRelConnects; }
if(v==IfcRelCoversBldgElements ) { return IfcRelConnects; }
if(v==IfcRelCoversSpaces ) { return IfcRelConnects; }
if(v==IfcRelDecomposes ) { return IfcRelationship; }
if(v==IfcRelDefines ) { return IfcRelationship; }
if(v==IfcRelDefinesByProperties ) { return IfcRelDefines; }
if(v==IfcRelDefinesByType ) { return IfcRelDefines; }
if(v==IfcRelFillsElement ) { return IfcRelConnects; }
if(v==IfcRelFlowControlElements ) { return IfcRelConnects; }
if(v==IfcRelInteractionRequirements ) { return IfcRelConnects; }
if(v==IfcRelNests ) { return IfcRelDecomposes; }
if(v==IfcRelOccupiesSpaces ) { return IfcRelAssignsToActor; }
if(v==IfcRelOverridesProperties ) { return IfcRelDefinesByProperties; }
if(v==IfcRelProjectsElement ) { return IfcRelConnects; }
if(v==IfcRelReferencedInSpatialStructure ) { return IfcRelConnects; }
if(v==IfcRelSchedulesCostItems ) { return IfcRelAssignsToControl; }
if(v==IfcRelSequence ) { return IfcRelConnects; }
if(v==IfcRelServicesBuildings ) { return IfcRelConnects; }
if(v==IfcRelSpaceBoundary ) { return IfcRelConnects; }
if(v==IfcRelVoidsElement ) { return IfcRelConnects; }
if(v==IfcRelationship ) { return IfcRoot; }
if(v==IfcResource ) { return IfcObject; }
if(v==IfcRevolvedAreaSolid ) { return IfcSweptAreaSolid; }
if(v==IfcRibPlateProfileProperties ) { return IfcProfileProperties; }
if(v==IfcRightCircularCone ) { return IfcCsgPrimitive3D; }
if(v==IfcRightCircularCylinder ) { return IfcCsgPrimitive3D; }
if(v==IfcRoof ) { return IfcBuildingElement; }
if(v==IfcRoundedEdgeFeature ) { return IfcEdgeFeature; }
if(v==IfcRoundedRectangleProfileDef ) { return IfcRectangleProfileDef; }
if(v==IfcSIUnit ) { return IfcNamedUnit; }
if(v==IfcSanitaryTerminalType ) { return IfcFlowTerminalType; }
if(v==IfcScheduleTimeControl ) { return IfcControl; }
if(v==IfcSectionedSpine ) { return IfcGeometricRepresentationItem; }
if(v==IfcSensorType ) { return IfcDistributionControlElementType; }
if(v==IfcServiceLife ) { return IfcControl; }
if(v==IfcServiceLifeFactor ) { return IfcPropertySetDefinition; }
if(v==IfcShapeModel ) { return IfcRepresentation; }
if(v==IfcShapeRepresentation ) { return IfcShapeModel; }
if(v==IfcShellBasedSurfaceModel ) { return IfcGeometricRepresentationItem; }
if(v==IfcSimpleProperty ) { return IfcProperty; }
if(v==IfcSite ) { return IfcSpatialStructureElement; }
if(v==IfcSlab ) { return IfcBuildingElement; }
if(v==IfcSlabType ) { return IfcBuildingElementType; }
if(v==IfcSlippageConnectionCondition ) { return IfcStructuralConnectionCondition; }
if(v==IfcSolidModel ) { return IfcGeometricRepresentationItem; }
if(v==IfcSoundProperties ) { return IfcPropertySetDefinition; }
if(v==IfcSoundValue ) { return IfcPropertySetDefinition; }
if(v==IfcSpace ) { return IfcSpatialStructureElement; }
if(v==IfcSpaceHeaterType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcSpaceProgram ) { return IfcControl; }
if(v==IfcSpaceThermalLoadProperties ) { return IfcPropertySetDefinition; }
if(v==IfcSpaceType ) { return IfcSpatialStructureElementType; }
if(v==IfcSpatialStructureElement ) { return IfcProduct; }
if(v==IfcSpatialStructureElementType ) { return IfcElementType; }
if(v==IfcSphere ) { return IfcCsgPrimitive3D; }
if(v==IfcStackTerminalType ) { return IfcFlowTerminalType; }
if(v==IfcStair ) { return IfcBuildingElement; }
if(v==IfcStairFlight ) { return IfcBuildingElement; }
if(v==IfcStairFlightType ) { return IfcBuildingElementType; }
if(v==IfcStructuralAction ) { return IfcStructuralActivity; }
if(v==IfcStructuralActivity ) { return IfcProduct; }
if(v==IfcStructuralAnalysisModel ) { return IfcSystem; }
if(v==IfcStructuralConnection ) { return IfcStructuralItem; }
if(v==IfcStructuralCurveConnection ) { return IfcStructuralConnection; }
if(v==IfcStructuralCurveMember ) { return IfcStructuralMember; }
if(v==IfcStructuralCurveMemberVarying ) { return IfcStructuralCurveMember; }
if(v==IfcStructuralItem ) { return IfcProduct; }
if(v==IfcStructuralLinearAction ) { return IfcStructuralAction; }
if(v==IfcStructuralLinearActionVarying ) { return IfcStructuralLinearAction; }
if(v==IfcStructuralLoadGroup ) { return IfcGroup; }
if(v==IfcStructuralLoadLinearForce ) { return IfcStructuralLoadStatic; }
if(v==IfcStructuralLoadPlanarForce ) { return IfcStructuralLoadStatic; }
if(v==IfcStructuralLoadSingleDisplacement ) { return IfcStructuralLoadStatic; }
if(v==IfcStructuralLoadSingleDisplacementDistortion ) { return IfcStructuralLoadSingleDisplacement; }
if(v==IfcStructuralLoadSingleForce ) { return IfcStructuralLoadStatic; }
if(v==IfcStructuralLoadSingleForceWarping ) { return IfcStructuralLoadSingleForce; }
if(v==IfcStructuralLoadStatic ) { return IfcStructuralLoad; }
if(v==IfcStructuralLoadTemperature ) { return IfcStructuralLoadStatic; }
if(v==IfcStructuralMember ) { return IfcStructuralItem; }
if(v==IfcStructuralPlanarAction ) { return IfcStructuralAction; }
if(v==IfcStructuralPlanarActionVarying ) { return IfcStructuralPlanarAction; }
if(v==IfcStructuralPointAction ) { return IfcStructuralAction; }
if(v==IfcStructuralPointConnection ) { return IfcStructuralConnection; }
if(v==IfcStructuralPointReaction ) { return IfcStructuralReaction; }
if(v==IfcStructuralProfileProperties ) { return IfcGeneralProfileProperties; }
if(v==IfcStructuralReaction ) { return IfcStructuralActivity; }
if(v==IfcStructuralResultGroup ) { return IfcGroup; }
if(v==IfcStructuralSteelProfileProperties ) { return IfcStructuralProfileProperties; }
if(v==IfcStructuralSurfaceConnection ) { return IfcStructuralConnection; }
if(v==IfcStructuralSurfaceMember ) { return IfcStructuralMember; }
if(v==IfcStructuralSurfaceMemberVarying ) { return IfcStructuralSurfaceMember; }
if(v==IfcStructuredDimensionCallout ) { return IfcDraughtingCallout; }
if(v==IfcStyleModel ) { return IfcRepresentation; }
if(v==IfcStyledItem ) { return IfcRepresentationItem; }
if(v==IfcStyledRepresentation ) { return IfcStyleModel; }
if(v==IfcSubContractResource ) { return IfcConstructionResource; }
if(v==IfcSubedge ) { return IfcEdge; }
if(v==IfcSurface ) { return IfcGeometricRepresentationItem; }
if(v==IfcSurfaceCurveSweptAreaSolid ) { return IfcSweptAreaSolid; }
if(v==IfcSurfaceOfLinearExtrusion ) { return IfcSweptSurface; }
if(v==IfcSurfaceOfRevolution ) { return IfcSweptSurface; }
if(v==IfcSurfaceStyle ) { return IfcPresentationStyle; }
if(v==IfcSurfaceStyleRendering ) { return IfcSurfaceStyleShading; }
if(v==IfcSweptAreaSolid ) { return IfcSolidModel; }
if(v==IfcSweptDiskSolid ) { return IfcSolidModel; }
if(v==IfcSweptSurface ) { return IfcSurface; }
if(v==IfcSwitchingDeviceType ) { return IfcFlowControllerType; }
if(v==IfcSymbolStyle ) { return IfcPresentationStyle; }
if(v==IfcSystem ) { return IfcGroup; }
if(v==IfcSystemFurnitureElementType ) { return IfcFurnishingElementType; }
if(v==IfcTShapeProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcTankType ) { return IfcFlowStorageDeviceType; }
if(v==IfcTask ) { return IfcProcess; }
if(v==IfcTelecomAddress ) { return IfcAddress; }
if(v==IfcTendon ) { return IfcReinforcingElement; }
if(v==IfcTendonAnchor ) { return IfcReinforcingElement; }
if(v==IfcTerminatorSymbol ) { return IfcAnnotationSymbolOccurrence; }
if(v==IfcTextLiteral ) { return IfcGeometricRepresentationItem; }
if(v==IfcTextLiteralWithExtent ) { return IfcTextLiteral; }
if(v==IfcTextStyle ) { return IfcPresentationStyle; }
if(v==IfcTextStyleFontModel ) { return IfcPreDefinedTextFont; }
if(v==IfcTextureCoordinateGenerator ) { return IfcTextureCoordinate; }
if(v==IfcTextureMap ) { return IfcTextureCoordinate; }
if(v==IfcThermalMaterialProperties ) { return IfcMaterialProperties; }
if(v==IfcTimeSeriesSchedule ) { return IfcControl; }
if(v==IfcTopologicalRepresentationItem ) { return IfcRepresentationItem; }
if(v==IfcTopologyRepresentation ) { return IfcShapeModel; }
if(v==IfcTransformerType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcTransportElement ) { return IfcElement; }
if(v==IfcTransportElementType ) { return IfcElementType; }
if(v==IfcTrapeziumProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcTrimmedCurve ) { return IfcBoundedCurve; }
if(v==IfcTubeBundleType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcTwoDirectionRepeatFactor ) { return IfcOneDirectionRepeatFactor; }
if(v==IfcTypeObject ) { return IfcObjectDefinition; }
if(v==IfcTypeProduct ) { return IfcTypeObject; }
if(v==IfcUShapeProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcUnitaryEquipmentType ) { return IfcEnergyConversionDeviceType; }
if(v==IfcValveType ) { return IfcFlowControllerType; }
if(v==IfcVector ) { return IfcGeometricRepresentationItem; }
if(v==IfcVertex ) { return IfcTopologicalRepresentationItem; }
if(v==IfcVertexLoop ) { return IfcLoop; }
if(v==IfcVertexPoint ) { return IfcVertex; }
if(v==IfcVibrationIsolatorType ) { return IfcDiscreteAccessoryType; }
if(v==IfcVirtualElement ) { return IfcElement; }
if(v==IfcWall ) { return IfcBuildingElement; }
if(v==IfcWallStandardCase ) { return IfcWall; }
if(v==IfcWallType ) { return IfcBuildingElementType; }
if(v==IfcWasteTerminalType ) { return IfcFlowTerminalType; }
if(v==IfcWaterProperties ) { return IfcMaterialProperties; }
if(v==IfcWindow ) { return IfcBuildingElement; }
if(v==IfcWindowLiningProperties ) { return IfcPropertySetDefinition; }
if(v==IfcWindowPanelProperties ) { return IfcPropertySetDefinition; }
if(v==IfcWindowStyle ) { return IfcTypeProduct; }
if(v==IfcWorkControl ) { return IfcControl; }
if(v==IfcWorkPlan ) { return IfcWorkControl; }
if(v==IfcWorkSchedule ) { return IfcWorkControl; }
if(v==IfcZShapeProfileDef ) { return IfcParameterizedProfileDef; }
if(v==IfcZone ) { return IfcGroup; }
return (Enum) -1;
}
std::string IfcActionSourceTypeEnum::ToString(IfcActionSourceTypeEnum v) {
if ( v < 0 || v >= 27 ) throw;
const char* names[] = { "DEAD_LOAD_G","COMPLETION_G1","LIVE_LOAD_Q","SNOW_S","WIND_W","PRESTRESSING_P","SETTLEMENT_U","TEMPERATURE_T","EARTHQUAKE_E","FIRE","IMPULSE","IMPACT","TRANSPORT","ERECTION","PROPPING","SYSTEM_IMPERFECTION","SHRINKAGE","CREEP","LACK_OF_FIT","BUOYANCY","ICE","CURRENT","WAVE","RAIN","BRAKES","USERDEFINED","NOTDEFINED" };
File diff suppressed because one or more lines are too long
+16 -13
View File
@@ -272,7 +272,7 @@ std::string TokenFunc::asString(Token t) {
}
std::string TokenFunc::toString(Token t) {
if ( isOperator(t) ) return std::string ( (char*) &t, 1 );
else return asString(t);
else return Ifc::tokens->TokenString(t - 128);
}
@@ -390,7 +390,7 @@ TokenArgument::operator SHARED_PTR<IfcUtil::IfcAbstractSelect>() const {
TokenArgument::operator IfcEntities() const { throw IfcException("Argument is not a list of entities"); }
unsigned int TokenArgument::Size() const { return 1; }
ArgumentPtr TokenArgument::operator [] (unsigned int i) const { throw IfcException("Argument is not a list of arguments"); }
std::string TokenArgument::toString() const { return TokenFunc::asString(token); }
std::string TokenArgument::toString() const { return TokenFunc::toString(token); }
bool TokenArgument::isNull() const { return TokenFunc::isOperator(token,'$'); }
//
// Functions for casting the EntityArgument to other types
@@ -454,7 +454,6 @@ void Entity::Load(std::vector<unsigned int>& ids, bool seek) {
if ( seek ) {
Ifc::file->Seek(offset);
Token datatype = Ifc::tokens->Next();
std::string dt = TokenFunc::toString(datatype);
if ( ! TokenFunc::isDatatype(datatype)) throw IfcException("Unexpected token while parsing entity");
_type = Ifc2x3::Type::FromString(TokenFunc::asString(datatype));
}
@@ -546,12 +545,16 @@ bool Ifc::Init(IfcParse::File* f) {
e = EntityPtr(new Entity(currentId,tokens));
entity = Ifc2x3::SchemaEntity(e);
if ( log1 && !((++x)%1000) ) std::cout << "\r#" << currentId << " " << std::flush;
IfcEntities L = EntitiesByType(entity->type());
if ( L == 0 ) {
L = IfcEntities(new IfcEntityList());
bytype[entity->type()] = L;
}
L->push(entity);
Ifc2x3::Type::Enum ty = entity->type();
do {
IfcEntities L = EntitiesByType(ty);
if ( L == 0 ) {
L = IfcEntities(new IfcEntityList());
bytype[ty] = L;
}
L->push(entity);
ty = Ifc2x3::Type::Parent(ty);
} while ( ty > -1 );
byid[currentId] = entity;
currentId = 0;
} else token = tokens->Next();
@@ -577,10 +580,10 @@ bool Ifc::Init(IfcParse::File* f) {
Ifc2x3::IfcUnitAssignment::list unit_assignments = EntitiesByType<Ifc2x3::IfcUnitAssignment>();
IfcUtil::IfcAbstractSelect::list units = IfcUtil::IfcAbstractSelect::list();
if ( unit_assignments->Size() ) {
Ifc2x3::IfcUnitAssignment::ptr unit_assignment = *unit_assignments->begin();
IfcUtil::IfcAbstractSelect::list units = unit_assignment->Units();
}
if ( units )
Ifc2x3::IfcUnitAssignment::ptr unit_assignment = *unit_assignments->begin();
units = unit_assignment->Units();
}
if ( ! units ) return true;
for ( IfcUtil::IfcAbstractSelect::it it = units->begin(); it != units->end(); ++ it ) {
const IfcUtil::IfcAbstractSelect::ptr base = *it;
Ifc2x3::IfcSIUnit::ptr unit = Ifc2x3::IfcSIUnit::ptr();
-56
View File
@@ -1,56 +0,0 @@
/********************************************************************************
* *
* This file is part of IfcOpenShell. *
* *
* IfcOpenShell is free software: you can redistribute it and/or modify *
* it under the terms of the Lesser GNU General Public License as published by *
* the Free Software Foundation, either version 3.0 of the License, or *
* (at your option) any later version. *
* *
* IfcOpenShell is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* Lesser GNU General Public License for more details. *
* *
* You should have received a copy of the Lesser GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
* *
********************************************************************************/
#include "IfcGeom.h"
namespace IfcGeom {
namespace Cache {
std::map<int,TopoDS_Shape> Shape;
void PurgeShapeCache() {
Shape.clear();
}
}
}
using namespace Ifc2x3;
using namespace IfcUtil;
bool IfcGeom::convert_shape(const SHARED_PTR<IfcBaseClass>& l, TopoDS_Shape& r) {
const unsigned int id = l->entity->id();
std::map<int,TopoDS_Shape>::const_iterator it = Cache::Shape.find(id);
if ( it != Cache::Shape.end() ) { r = it->second; return true; }
#include "IfcRegisterConvertShape.h"
Ifc::LogMessage("Error","No operation defined for:",l->entity);
return false;
}
bool IfcGeom::convert_wire(const SHARED_PTR<IfcBaseClass>& l, TopoDS_Wire& r) {
#include "IfcRegisterConvertWire.h"
Ifc::LogMessage("Error","No operation defined for:",l->entity);
return false;
}
bool IfcGeom::convert_face(const SHARED_PTR<IfcBaseClass>& l, TopoDS_Face& r) {
#include "IfcRegisterConvertFace.h"
Ifc::LogMessage("Error","No operation defined for:",l->entity);
return false;
}
bool IfcGeom::convert_curve(const SHARED_PTR<IfcBaseClass>& l, Handle(Geom_Curve)& r) {
#include "IfcRegisterConvertCurve.h"
Ifc::LogMessage("Error","No operation defined for:",l->entity);
return false;
}
+1 -1
View File
@@ -10,4 +10,4 @@ SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(IfcPython.i PROPERTIES CPLUSPLUS ON)
SWIG_ADD_MODULE(IfcImport python IfcPython.i)
SWIG_LINK_LIBRARIES(IfcImport ${PYTHON_LIBRARIES} IfcParse TKAdvTools TKMath TKernel TKBRep TKGeomBase TKGeomAlgo TKBool TKMesh TKShHealing TKFillet)
SWIG_LINK_LIBRARIES(IfcImport ${PYTHON_LIBRARIES} IfcParse IfcGeom TKernel TKMath TKBRep TKGeomBase TKGeomAlgo TKG3d TKG2d TKShHealing TKTopAlgo TKMesh TKPrim TKBool TKBO TKFillet)
+76 -20
View File
@@ -3,8 +3,9 @@
ProjectType="Visual C++"
Version="9,00"
Name="IfcGeom"
ProjectGUID="{D3E6944E-EA43-40BB-8DB3-9EC097F43B2B}"
ProjectGUID="{BA57AF0F-1D12-4FAC-BD40-7474D729CAE9}"
RootNamespace="IfcGeom"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
@@ -17,11 +18,10 @@
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\build\debug"
IntermediateDirectory="..\temp\geom\debug"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
BuildLogFile="$(IntDir)\BuildLog.htm"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
@@ -42,13 +42,11 @@
Name="VCCLCompilerTool"
AdditionalOptions="/DWNT"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS"
GeneratePreprocessedFile="0"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
ProgramDataBaseFileName="$(IntDir)\vc90.pdb"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
@@ -82,10 +80,10 @@
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\build\release"
IntermediateDirectory="..\temp\geom\release"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
@@ -105,14 +103,14 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/DWNT"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="0"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -152,7 +150,19 @@
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\src\ifcgeom\IfcGeom.cpp"
RelativePath="..\src\ifcgeom\IfcGeomCurves.cpp"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcGeomFaces.cpp"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcGeomFunctions.cpp"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcGeomHelpers.cpp"
>
</File>
<File
@@ -160,7 +170,15 @@
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcTypes.cpp"
RelativePath="..\src\ifcgeom\IfcGeomShapes.cpp"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcGeomWires.cpp"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcRegister.cpp"
>
</File>
</Filter>
@@ -169,22 +187,60 @@
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\src\ifcgeom\IfcGeom.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcGeomObjects.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcMacro.h"
RelativePath="..\src\ifcgeom\IfcRegister.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcSchema.h"
RelativePath="..\src\ifcgeom\IfcRegisterConvertCurve.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcTypes.h"
RelativePath="..\src\ifcgeom\IfcRegisterConvertFace.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcRegisterConvertShape.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcRegisterConvertWire.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcRegisterCreateCache.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcRegisterDef.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcRegisterGeomHeader.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcRegisterPurgeCache.h"
>
</File>
<File
RelativePath="..\src\ifcgeom\IfcRegisterUndef.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
+2 -2
View File
@@ -61,7 +61,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib zlibdll.lib bmm.lib core.lib CustDlg.lib edmodel.lib expr.lib flt.lib geom.lib gfx.lib gup.lib helpsys.lib imageViewers.lib ManipSys.lib maxnet.lib Maxscrpt.lib maxutil.lib MenuMan.lib menus.lib mesh.lib MNMath.lib Paramblk2.lib particle.lib Poly.lib RenderUtil.lib SpringSys.lib tessint.lib viewfile.lib acap.lib TKernel.lib PTKernel.lib TKMath.lib TKService.lib TKV3d.lib TKV2d.lib TKBRep.lib TKIGES.lib TKSTL.lib TKVRML.lib TKSTEP.lib TKSTEPAttr.lib TKSTEP209.lib TKSTEPBase.lib TKShapeSchema.lib TKGeomBase.lib TKGeomAlgo.lib TKG3d.lib TKG2d.lib TKXSBase.lib TKPShape.lib TKShHealing.lib TKHLR.lib TKTopAlgo.lib TKMesh.lib TKPrim.lib TKCDF.lib TKBool.lib TKBO.lib TKFillet.lib TKOffset.lib"
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib zlibdll.lib bmm.lib core.lib CustDlg.lib edmodel.lib expr.lib flt.lib geom.lib gfx.lib gup.lib helpsys.lib imageViewers.lib ManipSys.lib maxnet.lib Maxscrpt.lib maxutil.lib MenuMan.lib menus.lib mesh.lib MNMath.lib Paramblk2.lib particle.lib Poly.lib RenderUtil.lib SpringSys.lib tessint.lib viewfile.lib acap.lib TKerneld.lib TKMathd.lib TKBRepd.lib TKGeomBased.lib TKGeomAlgod.lib TKG3dd.lib TKG2dd.lib TKShHealingd.lib TKTopAlgod.lib TKMeshd.lib TKPrimd.lib TKBoold.lib TKBOd.lib TKFilletd.lib"
OutputFile="$(OutDir)\$(ProjectName).dli"
ModuleDefinitionFile="..\src\ifcmax\ifcmax.def"
GenerateDebugInformation="true"
@@ -136,7 +136,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib zlibdll.lib bmm.lib core.lib CustDlg.lib edmodel.lib expr.lib flt.lib geom.lib gfx.lib gup.lib helpsys.lib imageViewers.lib ManipSys.lib maxnet.lib Maxscrpt.lib maxutil.lib MenuMan.lib menus.lib mesh.lib MNMath.lib Paramblk2.lib particle.lib Poly.lib RenderUtil.lib SpringSys.lib tessint.lib viewfile.lib acap.lib TKernel.lib PTKernel.lib TKMath.lib TKService.lib TKV3d.lib TKV2d.lib TKBRep.lib TKIGES.lib TKSTL.lib TKVRML.lib TKSTEP.lib TKSTEPAttr.lib TKSTEP209.lib TKSTEPBase.lib TKShapeSchema.lib TKGeomBase.lib TKGeomAlgo.lib TKG3d.lib TKG2d.lib TKXSBase.lib TKPShape.lib TKShHealing.lib TKHLR.lib TKTopAlgo.lib TKMesh.lib TKPrim.lib TKCDF.lib TKBool.lib TKBO.lib TKFillet.lib TKOffset.lib"
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib zlibdll.lib bmm.lib core.lib CustDlg.lib edmodel.lib expr.lib flt.lib geom.lib gfx.lib gup.lib helpsys.lib imageViewers.lib ManipSys.lib maxnet.lib Maxscrpt.lib maxutil.lib MenuMan.lib menus.lib mesh.lib MNMath.lib Paramblk2.lib particle.lib Poly.lib RenderUtil.lib SpringSys.lib tessint.lib viewfile.lib acap.lib TKernel.lib TKMath.lib TKBRep.lib TKGeomBase.lib TKGeomAlgo.lib TKG3d.lib TKG2d.lib TKShHealing.lib TKTopAlgo.lib TKMesh.lib TKPrim.lib TKBool.lib TKBO.lib TKFillet.lib"
OutputFile="$(OutDir)\$(ProjectName).dli"
ModuleDefinitionFile="..\src\ifcmax\ifcmax.def"
GenerateDebugInformation="true"
+2 -3
View File
@@ -21,7 +21,6 @@
IntermediateDirectory="..\temp\obj\debug"
ConfigurationType="1"
CharacterSet="2"
BuildLogFile="$(IntDir)\BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
@@ -61,7 +60,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="TKernel.lib PTKernel.lib TKMath.lib TKService.lib TKV3d.lib TKV2d.lib TKBRep.lib TKShapeSchema.lib TKGeomBase.lib TKGeomAlgo.lib TKG3d.lib TKG2d.lib TKXSBase.lib TKPShape.lib TKShHealing.lib TKHLR.lib TKTopAlgo.lib TKMesh.lib TKPrim.lib TKCDF.lib TKBool.lib TKBO.lib TKFillet.lib TKOffset.lib"
AdditionalDependencies="TKerneld.lib TKMathd.lib TKBRepd.lib TKGeomBased.lib TKGeomAlgod.lib TKG3dd.lib TKG2dd.lib TKShHealingd.lib TKTopAlgod.lib TKMeshd.lib TKPrimd.lib TKBoold.lib TKBOd.lib TKFilletd.lib"
GenerateDebugInformation="true"
TargetMachine="1"
/>
@@ -131,7 +130,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="TKernel.lib PTKernel.lib TKMath.lib TKService.lib TKV3d.lib TKV2d.lib TKBRep.lib TKIGES.lib TKSTL.lib TKVRML.lib TKSTEP.lib TKSTEPAttr.lib TKSTEP209.lib TKSTEPBase.lib TKShapeSchema.lib TKGeomBase.lib TKGeomAlgo.lib TKG3d.lib TKG2d.lib TKXSBase.lib TKPShape.lib TKShHealing.lib TKHLR.lib TKTopAlgo.lib TKMesh.lib TKPrim.lib TKCDF.lib TKBool.lib TKBO.lib TKFillet.lib TKOffset.lib"
AdditionalDependencies="TKernel.lib TKMath.lib TKBRep.lib TKGeomBase.lib TKGeomAlgo.lib TKG3d.lib TKG2d.lib TKShHealing.lib TKTopAlgo.lib TKMesh.lib TKPrim.lib TKBool.lib TKBO.lib TKFillet.lib"
GenerateDebugInformation="true"
OptimizeReferences="2"
EnableCOMDATFolding="2"
+16
View File
@@ -14,6 +14,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IfcMax", "IfcMax.vcproj", "
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IfcObj", "IfcObj.vcproj", "{5B0BAAB3-9FC4-4C0C-9D38-8BF4B07F4A85}"
ProjectSection(ProjectDependencies) = postProject
{BA57AF0F-1D12-4FAC-BD40-7474D729CAE9} = {BA57AF0F-1D12-4FAC-BD40-7474D729CAE9}
{F7600775-3D48-426A-88E2-F3A4BF4408A2} = {F7600775-3D48-426A-88E2-F3A4BF4408A2}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IfcGeom", "IfcGeom.vcproj", "{BA57AF0F-1D12-4FAC-BD40-7474D729CAE9}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IfcParseExamples", "IfcParseExamples.vcproj", "{4DA9E9D7-60A6-4031-BA78-A3741BD62CB9}"
ProjectSection(ProjectDependencies) = postProject
{F7600775-3D48-426A-88E2-F3A4BF4408A2} = {F7600775-3D48-426A-88E2-F3A4BF4408A2}
EndProjectSection
@@ -40,6 +48,14 @@ Global
{5B0BAAB3-9FC4-4C0C-9D38-8BF4B07F4A85}.Debug|Win32.Build.0 = Debug|Win32
{5B0BAAB3-9FC4-4C0C-9D38-8BF4B07F4A85}.Release|Win32.ActiveCfg = Release|Win32
{5B0BAAB3-9FC4-4C0C-9D38-8BF4B07F4A85}.Release|Win32.Build.0 = Release|Win32
{BA57AF0F-1D12-4FAC-BD40-7474D729CAE9}.Debug|Win32.ActiveCfg = Debug|Win32
{BA57AF0F-1D12-4FAC-BD40-7474D729CAE9}.Debug|Win32.Build.0 = Debug|Win32
{BA57AF0F-1D12-4FAC-BD40-7474D729CAE9}.Release|Win32.ActiveCfg = Release|Win32
{BA57AF0F-1D12-4FAC-BD40-7474D729CAE9}.Release|Win32.Build.0 = Release|Win32
{4DA9E9D7-60A6-4031-BA78-A3741BD62CB9}.Debug|Win32.ActiveCfg = Debug|Win32
{4DA9E9D7-60A6-4031-BA78-A3741BD62CB9}.Debug|Win32.Build.0 = Debug|Win32
{4DA9E9D7-60A6-4031-BA78-A3741BD62CB9}.Release|Win32.ActiveCfg = Release|Win32
{4DA9E9D7-60A6-4031-BA78-A3741BD62CB9}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
-80
View File
@@ -161,42 +161,10 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\ifcparse\IfcGeomCurves.cpp"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcGeomFaces.cpp"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcGeomFunctions.cpp"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcGeomHelpers.cpp"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcGeomObjects.cpp"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcGeomShapes.cpp"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcGeomWires.cpp"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcParse.cpp"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegister.cpp"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcUtil.cpp"
>
@@ -215,58 +183,10 @@
RelativePath="..\src\ifcparse\Ifc2x3enum.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcGeom.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcGeomObjects.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcParse.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegister.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegisterConvertCurve.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegisterConvertFace.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegisterConvertShape.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegisterConvertWire.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegisterCreateCache.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegisterDef.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegisterGeomHeader.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegisterPurgeCache.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcRegisterUndef.h"
>
</File>
<File
RelativePath="..\src\ifcparse\IfcSchema.h"
>
+193
View File
@@ -0,0 +1,193 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="IfcParseExamples"
ProjectGUID="{4DA9E9D7-60A6-4031-BA78-A3741BD62CB9}"
RootNamespace="IfcParseExamples"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\build\debug"
IntermediateDirectory="..\temp\examples\debug"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\build\release"
IntermediateDirectory="..\temp\examples\release"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\src\examples\IfcParseExamples.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
+2 -2
View File
@@ -61,7 +61,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="TKernel.lib PTKernel.lib TKMath.lib TKService.lib TKV3d.lib TKV2d.lib TKBRep.lib TKIGES.lib TKSTL.lib TKVRML.lib TKSTEP.lib TKSTEPAttr.lib TKSTEP209.lib TKSTEPBase.lib TKShapeSchema.lib TKGeomBase.lib TKGeomAlgo.lib TKG3d.lib TKG2d.lib TKXSBase.lib TKPShape.lib TKShHealing.lib TKHLR.lib TKTopAlgo.lib TKMesh.lib TKPrim.lib TKCDF.lib TKBool.lib TKBO.lib TKFillet.lib TKOffset.lib"
AdditionalDependencies="TKerneld.lib TKMathd.lib TKBRepd.lib TKGeomBased.lib TKGeomAlgod.lib TKG3dd.lib TKG2dd.lib TKShHealingd.lib TKTopAlgod.lib TKMeshd.lib TKPrimd.lib TKBoold.lib TKBOd.lib TKFilletd.lib"
OutputFile="$(OutDir)\_IfcImport.pyd"
GenerateDebugInformation="true"
TargetMachine="1"
@@ -132,7 +132,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="TKernel.lib PTKernel.lib TKMath.lib TKService.lib TKV3d.lib TKV2d.lib TKBRep.lib TKIGES.lib TKSTL.lib TKVRML.lib TKSTEP.lib TKSTEPAttr.lib TKSTEP209.lib TKSTEPBase.lib TKShapeSchema.lib TKGeomBase.lib TKGeomAlgo.lib TKG3d.lib TKG2d.lib TKXSBase.lib TKPShape.lib TKShHealing.lib TKHLR.lib TKTopAlgo.lib TKMesh.lib TKPrim.lib TKCDF.lib TKBool.lib TKBO.lib TKFillet.lib TKOffset.lib"
AdditionalDependencies="TKernel.lib TKMath.lib TKBRep.lib TKGeomBase.lib TKGeomAlgo.lib TKG3d.lib TKG2d.lib TKShHealing.lib TKTopAlgo.lib TKMesh.lib TKPrim.lib TKBool.lib TKBO.lib TKFillet.lib"
OutputFile="$(OutDir)\_IfcImport.pyd"
GenerateDebugInformation="true"
OptimizeReferences="2"