mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-10-03 21:38:12 +00:00
Rename AddEntity to addEntity
This commit is contained in:
@@ -127,12 +127,12 @@ int main(int argc, char** argv) {
|
|||||||
, IfcSchema::IfcOpeningElementTypeEnum::IfcOpeningElementType_OPENING
|
, IfcSchema::IfcOpeningElementTypeEnum::IfcOpeningElementType_OPENING
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
file.AddEntity(west_opening);
|
file.addEntity(west_opening);
|
||||||
|
|
||||||
// Relate the opening element to the wall.
|
// Relate the opening element to the wall.
|
||||||
IfcSchema::IfcRelVoidsElement* void_element = new IfcSchema::IfcRelVoidsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(),
|
IfcSchema::IfcRelVoidsElement* void_element = new IfcSchema::IfcRelVoidsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(),
|
||||||
null, null, south_wall, west_opening);
|
null, null, south_wall, west_opening);
|
||||||
file.AddEntity(void_element);
|
file.addEntity(void_element);
|
||||||
|
|
||||||
// Now create an additional opening
|
// Now create an additional opening
|
||||||
IfcSchema::IfcOpeningElement* south_opening = new IfcSchema::IfcOpeningElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(),
|
IfcSchema::IfcOpeningElement* south_opening = new IfcSchema::IfcOpeningElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(),
|
||||||
@@ -142,8 +142,8 @@ int main(int argc, char** argv) {
|
|||||||
, IfcSchema::IfcOpeningElementTypeEnum::IfcOpeningElementType_OPENING
|
, IfcSchema::IfcOpeningElementTypeEnum::IfcOpeningElementType_OPENING
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
file.AddEntity(south_opening);
|
file.addEntity(south_opening);
|
||||||
file.AddEntity(new IfcSchema::IfcRelVoidsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), null, null, south_wall, south_opening));
|
file.addEntity(new IfcSchema::IfcRelVoidsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), null, null, south_wall, south_opening));
|
||||||
|
|
||||||
// Create a roof element that will consist of two slabs:
|
// Create a roof element that will consist of two slabs:
|
||||||
IfcSchema::IfcRoof* roof = new IfcSchema::IfcRoof(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), S("Roof"), null, null,
|
IfcSchema::IfcRoof* roof = new IfcSchema::IfcRoof(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), S("Roof"), null, null,
|
||||||
@@ -177,7 +177,7 @@ int main(int argc, char** argv) {
|
|||||||
roof_parts->push(north_roof_part);
|
roof_parts->push(north_roof_part);
|
||||||
IfcSchema::IfcRelDecomposes* roof_decomposition = new IfcSchema::IfcRelAggregates(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(),
|
IfcSchema::IfcRelDecomposes* roof_decomposition = new IfcSchema::IfcRelAggregates(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(),
|
||||||
null, null, roof, roof_parts);
|
null, null, roof, roof_parts);
|
||||||
file.AddEntity(roof_decomposition);
|
file.addEntity(roof_decomposition);
|
||||||
|
|
||||||
file.addBuildingProduct(south_roof_part);
|
file.addBuildingProduct(south_roof_part);
|
||||||
file.addBuildingProduct(north_roof_part);
|
file.addBuildingProduct(north_roof_part);
|
||||||
@@ -247,8 +247,8 @@ int main(int argc, char** argv) {
|
|||||||
, IfcSchema::IfcOpeningElementTypeEnum::IfcOpeningElementType_OPENING
|
, IfcSchema::IfcOpeningElementTypeEnum::IfcOpeningElementType_OPENING
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
file.AddEntity(west_opening_copy);
|
file.addEntity(west_opening_copy);
|
||||||
file.AddEntity(new IfcSchema::IfcRelVoidsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), null, null, west_wall, west_opening_copy));
|
file.addEntity(new IfcSchema::IfcRelVoidsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), null, null, west_wall, west_opening_copy));
|
||||||
|
|
||||||
// Up until now we have only used simple extrusions for the creation of the geometry. For the
|
// Up until now we have only used simple extrusions for the creation of the geometry. For the
|
||||||
// ground mesh of the IfcSite we will use a Nurbs surface created in Open Cascade. The surface
|
// ground mesh of the IfcSite we will use a Nurbs surface created in Open Cascade. The surface
|
||||||
@@ -319,11 +319,11 @@ int main(int argc, char** argv) {
|
|||||||
#endif
|
#endif
|
||||||
layer_usage);
|
layer_usage);
|
||||||
|
|
||||||
file.AddEntity(material);
|
file.addEntity(material);
|
||||||
file.AddEntity(layer);
|
file.addEntity(layer);
|
||||||
file.AddEntity(layer_set);
|
file.addEntity(layer_set);
|
||||||
file.AddEntity(layer_usage);
|
file.addEntity(layer_usage);
|
||||||
file.AddEntity(associates_material);
|
file.addEntity(associates_material);
|
||||||
|
|
||||||
// In addition, another common way to represent geometry in IFC files is to use extrusions of
|
// In addition, another common way to represent geometry in IFC files is to use extrusions of
|
||||||
// planar areas bounded by a polygon.
|
// planar areas bounded by a polygon.
|
||||||
@@ -351,8 +351,8 @@ int main(int argc, char** argv) {
|
|||||||
, IfcSchema::IfcOpeningElementTypeEnum::IfcOpeningElementType_OPENING
|
, IfcSchema::IfcOpeningElementTypeEnum::IfcOpeningElementType_OPENING
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
file.AddEntity(door_opening);
|
file.addEntity(door_opening);
|
||||||
file.AddEntity(new IfcSchema::IfcRelVoidsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), null, null, east_wall, door_opening));
|
file.addEntity(new IfcSchema::IfcRelVoidsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), null, null, east_wall, door_opening));
|
||||||
|
|
||||||
// A single shape representation can contain multiple representiation items. This way a product
|
// A single shape representation can contain multiple representiation items. This way a product
|
||||||
// can be a composition of multiple solids. The following door will be composed of four boxes
|
// can be a composition of multiple solids. The following door will be composed of four boxes
|
||||||
@@ -379,7 +379,7 @@ int main(int argc, char** argv) {
|
|||||||
file.addBox(door_body, 860, 30, 2120);
|
file.addBox(door_body, 860, 30, 2120);
|
||||||
file.addBuildingProduct(door);
|
file.addBuildingProduct(door);
|
||||||
file.setSurfaceColour(door->Representation(), 0.9, 0.9, 0.9);
|
file.setSurfaceColour(door->Representation(), 0.9, 0.9, 0.9);
|
||||||
file.AddEntity(new IfcSchema::IfcRelFillsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), null, null, door_opening, door));
|
file.addEntity(new IfcSchema::IfcRelFillsElement(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(), null, null, door_opening, door));
|
||||||
|
|
||||||
// Surface styles are assigned to representation items, hence there is no real limitation to
|
// Surface styles are assigned to representation items, hence there is no real limitation to
|
||||||
// assign different colours within the same representation. However, some viewers have
|
// assign different colours within the same representation. However, some viewers have
|
||||||
@@ -462,7 +462,7 @@ int main(int argc, char** argv) {
|
|||||||
, IfcSchema::IfcMemberTypeEnum::IfcMemberType_MULLION
|
, IfcSchema::IfcMemberTypeEnum::IfcMemberType_MULLION
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
file.AddEntity(frame_part);
|
file.addEntity(frame_part);
|
||||||
window_parts->push(frame_part);
|
window_parts->push(frame_part);
|
||||||
file.relatePlacements(window, frame_part);
|
file.relatePlacements(window, frame_part);
|
||||||
}
|
}
|
||||||
@@ -474,7 +474,7 @@ int main(int argc, char** argv) {
|
|||||||
, IfcSchema::IfcPlateTypeEnum::IfcPlateType_SHEET
|
, IfcSchema::IfcPlateTypeEnum::IfcPlateType_SHEET
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
file.AddEntity(glass_part);
|
file.addEntity(glass_part);
|
||||||
window_parts->push(glass_part);
|
window_parts->push(glass_part);
|
||||||
file.relatePlacements(window, glass_part);
|
file.relatePlacements(window, glass_part);
|
||||||
file.setSurfaceColour(glass_part->Representation(), 0.6, 0.7, 0.75, 0.1);
|
file.setSurfaceColour(glass_part->Representation(), 0.6, 0.7, 0.75, 0.1);
|
||||||
@@ -483,7 +483,7 @@ int main(int argc, char** argv) {
|
|||||||
// tools will consider the window a single entity that can be selected as a whole.
|
// tools will consider the window a single entity that can be selected as a whole.
|
||||||
IfcSchema::IfcRelDecomposes* decomposition = new IfcSchema::IfcRelAggregates(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(),
|
IfcSchema::IfcRelDecomposes* decomposition = new IfcSchema::IfcRelAggregates(guid(), file.getSingle<IfcSchema::IfcOwnerHistory>(),
|
||||||
null, null, window, window_parts);
|
null, null, window, window_parts);
|
||||||
file.AddEntity(decomposition);
|
file.addEntity(decomposition);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finally create a file stream for our output and write the IFC file to it.
|
// Finally create a file stream for our output and write the IFC file to it.
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresenta
|
|||||||
|
|
||||||
if (s == "GeometricSet") {
|
if (s == "GeometricSet") {
|
||||||
IfcSchema::IfcGeometricSet* set = new IfcSchema::IfcGeometricSet(items->generalize());
|
IfcSchema::IfcGeometricSet* set = new IfcSchema::IfcGeometricSet(items->generalize());
|
||||||
file.AddEntity(set);
|
file.addEntity(set);
|
||||||
items = IfcSchema::IfcRepresentationItem::list(new IfcTemplatedEntityList<IfcSchema::IfcRepresentationItem>());
|
items = IfcSchema::IfcRepresentationItem::list(new IfcTemplatedEntityList<IfcSchema::IfcRepresentationItem>());
|
||||||
items->push(set);
|
items->push(set);
|
||||||
}
|
}
|
||||||
@@ -61,20 +61,20 @@ void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresenta
|
|||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
||||||
file.AddEntity(rep);
|
file.addEntity(rep);
|
||||||
file.AddEntity(shape);
|
file.addEntity(shape);
|
||||||
|
|
||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
}
|
}
|
||||||
|
|
||||||
void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) {
|
void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) {
|
||||||
IfcSchema::IfcSurfaceOfLinearExtrusion* extrusion = new IfcSchema::IfcSurfaceOfLinearExtrusion(profile, file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 100.);
|
IfcSchema::IfcSurfaceOfLinearExtrusion* extrusion = new IfcSchema::IfcSurfaceOfLinearExtrusion(profile, file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 100.);
|
||||||
file.AddEntity(extrusion);
|
file.addEntity(extrusion);
|
||||||
|
|
||||||
IfcSchema::IfcAxis1Placement* ax1 = new IfcSchema::IfcAxis1Placement(file.addTriplet<IfcSchema::IfcCartesianPoint>(0,100,0), file.addTriplet<IfcSchema::IfcDirection>(1,0,0));
|
IfcSchema::IfcAxis1Placement* ax1 = new IfcSchema::IfcAxis1Placement(file.addTriplet<IfcSchema::IfcCartesianPoint>(0,100,0), file.addTriplet<IfcSchema::IfcDirection>(1,0,0));
|
||||||
IfcSchema::IfcSurfaceOfRevolution* revolution = new IfcSchema::IfcSurfaceOfRevolution(profile, file.addPlacement3d(), ax1);
|
IfcSchema::IfcSurfaceOfRevolution* revolution = new IfcSchema::IfcSurfaceOfRevolution(profile, file.addPlacement3d(), ax1);
|
||||||
file.AddEntity(ax1);
|
file.addEntity(ax1);
|
||||||
file.AddEntity(revolution);
|
file.addEntity(revolution);
|
||||||
|
|
||||||
create_product_from_item(file, extrusion, "GeometricSet");
|
create_product_from_item(file, extrusion, "GeometricSet");
|
||||||
create_product_from_item(file, revolution, "GeometricSet");
|
create_product_from_item(file, revolution, "GeometricSet");
|
||||||
@@ -82,14 +82,14 @@ void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfil
|
|||||||
|
|
||||||
void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) {
|
void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) {
|
||||||
IfcSchema::IfcExtrudedAreaSolid* extrusion = new IfcSchema::IfcExtrudedAreaSolid(profile, file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 100.);
|
IfcSchema::IfcExtrudedAreaSolid* extrusion = new IfcSchema::IfcExtrudedAreaSolid(profile, file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 100.);
|
||||||
file.AddEntity(extrusion);
|
file.addEntity(extrusion);
|
||||||
|
|
||||||
IfcSchema::IfcAxis1Placement* ax1 = new IfcSchema::IfcAxis1Placement(file.addTriplet<IfcSchema::IfcCartesianPoint>(0,100,0), file.addTriplet<IfcSchema::IfcDirection>(1,0,0));
|
IfcSchema::IfcAxis1Placement* ax1 = new IfcSchema::IfcAxis1Placement(file.addTriplet<IfcSchema::IfcCartesianPoint>(0,100,0), file.addTriplet<IfcSchema::IfcDirection>(1,0,0));
|
||||||
IfcSchema::IfcRevolvedAreaSolid* revolution1 = new IfcSchema::IfcRevolvedAreaSolid(profile, file.addPlacement3d(), ax1, 360.);
|
IfcSchema::IfcRevolvedAreaSolid* revolution1 = new IfcSchema::IfcRevolvedAreaSolid(profile, file.addPlacement3d(), ax1, 360.);
|
||||||
IfcSchema::IfcRevolvedAreaSolid* revolution2 = new IfcSchema::IfcRevolvedAreaSolid(profile, file.addPlacement3d(), ax1, 90.);
|
IfcSchema::IfcRevolvedAreaSolid* revolution2 = new IfcSchema::IfcRevolvedAreaSolid(profile, file.addPlacement3d(), ax1, 90.);
|
||||||
file.AddEntity(ax1);
|
file.addEntity(ax1);
|
||||||
file.AddEntity(revolution1);
|
file.addEntity(revolution1);
|
||||||
file.AddEntity(revolution2);
|
file.addEntity(revolution2);
|
||||||
|
|
||||||
create_product_from_item(file, extrusion, "SweptSolid");
|
create_product_from_item(file, extrusion, "SweptSolid");
|
||||||
create_product_from_item(file, revolution1, "SweptSolid");
|
create_product_from_item(file, revolution1, "SweptSolid");
|
||||||
@@ -99,8 +99,8 @@ void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileD
|
|||||||
void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedCurve* curve) {
|
void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedCurve* curve) {
|
||||||
IfcSchema::IfcArbitraryOpenProfileDef* open = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, null, curve);
|
IfcSchema::IfcArbitraryOpenProfileDef* open = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, null, curve);
|
||||||
IfcSchema::IfcCenterLineProfileDef* center_line = new IfcSchema::IfcCenterLineProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, curve, 10.);
|
IfcSchema::IfcCenterLineProfileDef* center_line = new IfcSchema::IfcCenterLineProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, curve, 10.);
|
||||||
file.AddEntity(open);
|
file.addEntity(open);
|
||||||
file.AddEntity(center_line);
|
file.addEntity(center_line);
|
||||||
|
|
||||||
create_surfaces_from_profile(file, open);
|
create_surfaces_from_profile(file, open);
|
||||||
create_solids_from_profile(file, center_line);
|
create_solids_from_profile(file, center_line);
|
||||||
@@ -118,18 +118,18 @@ int main(int argc, char** argv) {
|
|||||||
points->push(new IfcSchema::IfcCartesianPoint(std::vector<double>(coords2, coords2+2)));
|
points->push(new IfcSchema::IfcCartesianPoint(std::vector<double>(coords2, coords2+2)));
|
||||||
file.AddEntities(points->generalize());
|
file.AddEntities(points->generalize());
|
||||||
IfcSchema::IfcPolyline* poly = new IfcSchema::IfcPolyline(points);
|
IfcSchema::IfcPolyline* poly = new IfcSchema::IfcPolyline(points);
|
||||||
file.AddEntity(poly);
|
file.addEntity(poly);
|
||||||
|
|
||||||
create_products_from_curve(file, poly);
|
create_products_from_curve(file, poly);
|
||||||
|
|
||||||
IfcSchema::IfcEllipse* ellipse = new IfcSchema::IfcEllipse(file.addPlacement2d(), 50., 25.);
|
IfcSchema::IfcEllipse* ellipse = new IfcSchema::IfcEllipse(file.addPlacement2d(), 50., 25.);
|
||||||
file.AddEntity(ellipse);
|
file.addEntity(ellipse);
|
||||||
IfcEntityList::ptr trim1(new IfcEntityList);
|
IfcEntityList::ptr trim1(new IfcEntityList);
|
||||||
IfcEntityList::ptr trim2(new IfcEntityList);
|
IfcEntityList::ptr trim2(new IfcEntityList);
|
||||||
trim1->push(new IfcWrite::IfcSelectHelper( 0., Ifc2x3::Type::IfcParameterValue));
|
trim1->push(new IfcWrite::IfcSelectHelper( 0., Ifc2x3::Type::IfcParameterValue));
|
||||||
trim2->push(new IfcWrite::IfcSelectHelper(180., Ifc2x3::Type::IfcParameterValue));
|
trim2->push(new IfcWrite::IfcSelectHelper(180., Ifc2x3::Type::IfcParameterValue));
|
||||||
IfcSchema::IfcTrimmedCurve* trim = new IfcSchema::IfcTrimmedCurve(ellipse, trim1, trim2, true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
IfcSchema::IfcTrimmedCurve* trim = new IfcSchema::IfcTrimmedCurve(ellipse, trim1, trim2, true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
||||||
file.AddEntity(trim);
|
file.addEntity(trim);
|
||||||
|
|
||||||
create_products_from_curve(file, trim);
|
create_products_from_curve(file, trim);
|
||||||
|
|
||||||
|
|||||||
@@ -65,11 +65,11 @@ int main(int argc, char** argv) {
|
|||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, file.addPlacement2d(80.), 50.0, 25.0, 5.0, 10.0, 2.0, null);
|
null, file.addPlacement2d(80.), 50.0, 25.0, 5.0, 10.0, 2.0, null);
|
||||||
|
|
||||||
file.AddEntity(p2);
|
file.addEntity(p2);
|
||||||
file.AddEntity(p3);
|
file.addEntity(p3);
|
||||||
|
|
||||||
file.AddEntity(transform1);
|
file.addEntity(transform1);
|
||||||
file.AddEntity(transform2);
|
file.addEntity(transform2);
|
||||||
|
|
||||||
IfcSchema::IfcDerivedProfileDef* p5 = new IfcSchema::IfcDerivedProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, p2, transform1, null);
|
IfcSchema::IfcDerivedProfileDef* p5 = new IfcSchema::IfcDerivedProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, p2, transform1, null);
|
||||||
IfcSchema::IfcDerivedProfileDef* p6 = new IfcSchema::IfcDerivedProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, p3, transform2, null);
|
IfcSchema::IfcDerivedProfileDef* p6 = new IfcSchema::IfcDerivedProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, p3, transform2, null);
|
||||||
@@ -95,8 +95,8 @@ int main(int argc, char** argv) {
|
|||||||
IfcSchema::IfcExtrudedAreaSolid* solid = new IfcSchema::IfcExtrudedAreaSolid(composite,
|
IfcSchema::IfcExtrudedAreaSolid* solid = new IfcSchema::IfcExtrudedAreaSolid(composite,
|
||||||
file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 20.0);
|
file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 20.0);
|
||||||
|
|
||||||
file.AddEntity(composite);
|
file.addEntity(composite);
|
||||||
file.AddEntity(solid);
|
file.addEntity(solid);
|
||||||
|
|
||||||
IfcSchema::IfcRepresentation::list reps (new IfcTemplatedEntityList<IfcSchema::IfcRepresentation>());
|
IfcSchema::IfcRepresentation::list reps (new IfcTemplatedEntityList<IfcSchema::IfcRepresentation>());
|
||||||
IfcSchema::IfcRepresentationItem::list items (new IfcTemplatedEntityList<IfcSchema::IfcRepresentationItem>());
|
IfcSchema::IfcRepresentationItem::list items (new IfcTemplatedEntityList<IfcSchema::IfcRepresentationItem>());
|
||||||
@@ -107,8 +107,8 @@ int main(int argc, char** argv) {
|
|||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
||||||
file.AddEntity(rep);
|
file.addEntity(rep);
|
||||||
file.AddEntity(shape);
|
file.addEntity(shape);
|
||||||
|
|
||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
|
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ public:
|
|||||||
}
|
}
|
||||||
my = new IfcSchema::IfcBooleanResult(o, left->serialize(file), right->serialize(file));
|
my = new IfcSchema::IfcBooleanResult(o, left->serialize(file), right->serialize(file));
|
||||||
}
|
}
|
||||||
file.AddEntity(my);
|
file.addEntity(my);
|
||||||
return my;
|
return my;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -181,8 +181,8 @@ int main(int argc, char** argv) {
|
|||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
||||||
file.AddEntity(rep);
|
file.addEntity(rep);
|
||||||
file.AddEntity(shape);
|
file.addEntity(shape);
|
||||||
|
|
||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
|
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3
|
|||||||
|
|
||||||
|
|
||||||
Ifc2x3::IfcEllipse* ellipse = new Ifc2x3::IfcEllipse(file.addPlacement2d(), pie.r1, pie.r2);
|
Ifc2x3::IfcEllipse* ellipse = new Ifc2x3::IfcEllipse(file.addPlacement2d(), pie.r1, pie.r2);
|
||||||
file.AddEntity(ellipse);
|
file.addEntity(ellipse);
|
||||||
IfcEntityList::ptr trim1(new IfcEntityList);
|
IfcEntityList::ptr trim1(new IfcEntityList);
|
||||||
IfcEntityList::ptr trim2(new IfcEntityList);
|
IfcEntityList::ptr trim2(new IfcEntityList);
|
||||||
if (pref == Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER) {
|
if (pref == Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER) {
|
||||||
@@ -77,13 +77,13 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3
|
|||||||
trim2->push(p3);
|
trim2->push(p3);
|
||||||
}
|
}
|
||||||
Ifc2x3::IfcTrimmedCurve* trim = new Ifc2x3::IfcTrimmedCurve(ellipse, trim1, trim2, true, pref);
|
Ifc2x3::IfcTrimmedCurve* trim = new Ifc2x3::IfcTrimmedCurve(ellipse, trim1, trim2, true, pref);
|
||||||
file.AddEntity(trim);
|
file.addEntity(trim);
|
||||||
|
|
||||||
Ifc2x3::IfcCompositeCurveSegment::list segments(new IfcTemplatedEntityList<Ifc2x3::IfcCompositeCurveSegment>());
|
Ifc2x3::IfcCompositeCurveSegment::list segments(new IfcTemplatedEntityList<Ifc2x3::IfcCompositeCurveSegment>());
|
||||||
Ifc2x3::IfcCompositeCurveSegment* s2 = new Ifc2x3::IfcCompositeCurveSegment(Ifc2x3::IfcTransitionCode::IfcTransitionCode_CONTINUOUS, true, trim);
|
Ifc2x3::IfcCompositeCurveSegment* s2 = new Ifc2x3::IfcCompositeCurveSegment(Ifc2x3::IfcTransitionCode::IfcTransitionCode_CONTINUOUS, true, trim);
|
||||||
|
|
||||||
Ifc2x3::IfcPolyline* poly = new Ifc2x3::IfcPolyline(points);
|
Ifc2x3::IfcPolyline* poly = new Ifc2x3::IfcPolyline(points);
|
||||||
file.AddEntity(poly);
|
file.addEntity(poly);
|
||||||
Ifc2x3::IfcCompositeCurveSegment* s1 = new Ifc2x3::IfcCompositeCurveSegment(Ifc2x3::IfcTransitionCode::IfcTransitionCode_CONTINUOUS, true, poly);
|
Ifc2x3::IfcCompositeCurveSegment* s1 = new Ifc2x3::IfcCompositeCurveSegment(Ifc2x3::IfcTransitionCode::IfcTransitionCode_CONTINUOUS, true, poly);
|
||||||
segments->push(s1);
|
segments->push(s1);
|
||||||
|
|
||||||
@@ -92,8 +92,8 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3
|
|||||||
|
|
||||||
Ifc2x3::IfcCompositeCurve* ccurve = new Ifc2x3::IfcCompositeCurve(segments, false);
|
Ifc2x3::IfcCompositeCurve* ccurve = new Ifc2x3::IfcCompositeCurve(segments, false);
|
||||||
Ifc2x3::IfcArbitraryClosedProfileDef* profile = new Ifc2x3::IfcArbitraryClosedProfileDef(Ifc2x3::IfcProfileTypeEnum::IfcProfileType_AREA, null, ccurve);
|
Ifc2x3::IfcArbitraryClosedProfileDef* profile = new Ifc2x3::IfcArbitraryClosedProfileDef(Ifc2x3::IfcProfileTypeEnum::IfcProfileType_AREA, null, ccurve);
|
||||||
file.AddEntity(ccurve);
|
file.addEntity(ccurve);
|
||||||
file.AddEntity(profile);
|
file.addEntity(profile);
|
||||||
|
|
||||||
IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy(
|
IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy(
|
||||||
guid(), 0, S("profile"), null, null, 0, 0, null, null);
|
guid(), 0, S("profile"), null, null, 0, 0, null, null);
|
||||||
@@ -105,7 +105,7 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3
|
|||||||
IfcSchema::IfcExtrudedAreaSolid* solid = new IfcSchema::IfcExtrudedAreaSolid(profile,
|
IfcSchema::IfcExtrudedAreaSolid* solid = new IfcSchema::IfcExtrudedAreaSolid(profile,
|
||||||
file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 20.0);
|
file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 20.0);
|
||||||
|
|
||||||
file.AddEntity(solid);
|
file.addEntity(solid);
|
||||||
|
|
||||||
IfcSchema::IfcRepresentation::list reps (new IfcTemplatedEntityList<IfcSchema::IfcRepresentation>());
|
IfcSchema::IfcRepresentation::list reps (new IfcTemplatedEntityList<IfcSchema::IfcRepresentation>());
|
||||||
IfcSchema::IfcRepresentationItem::list items (new IfcTemplatedEntityList<IfcSchema::IfcRepresentationItem>());
|
IfcSchema::IfcRepresentationItem::list items (new IfcTemplatedEntityList<IfcSchema::IfcRepresentationItem>());
|
||||||
@@ -116,8 +116,8 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3
|
|||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
||||||
file.AddEntity(rep);
|
file.addEntity(rep);
|
||||||
file.AddEntity(shape);
|
file.addEntity(shape);
|
||||||
|
|
||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) {
|
|||||||
IfcSchema::IfcExtrudedAreaSolid* solid = new IfcSchema::IfcExtrudedAreaSolid(profile,
|
IfcSchema::IfcExtrudedAreaSolid* solid = new IfcSchema::IfcExtrudedAreaSolid(profile,
|
||||||
file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 20.0);
|
file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 20.0);
|
||||||
|
|
||||||
file.AddEntity(profile);
|
file.addEntity(profile);
|
||||||
file.AddEntity(solid);
|
file.addEntity(solid);
|
||||||
|
|
||||||
IfcSchema::IfcRepresentation::list::ptr reps (new IfcSchema::IfcRepresentation::list);
|
IfcSchema::IfcRepresentation::list::ptr reps (new IfcSchema::IfcRepresentation::list);
|
||||||
IfcSchema::IfcRepresentationItem::list::ptr items (new IfcSchema::IfcRepresentationItem::list);
|
IfcSchema::IfcRepresentationItem::list::ptr items (new IfcSchema::IfcRepresentationItem::list);
|
||||||
@@ -73,8 +73,8 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) {
|
|||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
||||||
file.AddEntity(rep);
|
file.addEntity(rep);
|
||||||
file.AddEntity(shape);
|
file.addEntity(shape);
|
||||||
|
|
||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ public:
|
|||||||
|
|
||||||
unsigned int FreshId() { return ++MaxId; }
|
unsigned int FreshId() { return ++MaxId; }
|
||||||
|
|
||||||
IfcUtil::IfcBaseClass* AddEntity(IfcUtil::IfcBaseClass* entity);
|
IfcUtil::IfcBaseClass* addEntity(IfcUtil::IfcBaseClass* entity);
|
||||||
void AddEntities(IfcEntityList::ptr es);
|
void AddEntities(IfcEntityList::ptr es);
|
||||||
|
|
||||||
void removeEntity(IfcUtil::IfcBaseClass* entity);
|
void removeEntity(IfcUtil::IfcBaseClass* entity);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ IfcSchema::IfcAxis2Placement3D* IfcHierarchyHelper::addPlacement3d(
|
|||||||
IfcSchema::IfcDirection* z = addTriplet<IfcSchema::IfcDirection>(zx, zy, zz);
|
IfcSchema::IfcDirection* z = addTriplet<IfcSchema::IfcDirection>(zx, zy, zz);
|
||||||
IfcSchema::IfcCartesianPoint* o = addTriplet<IfcSchema::IfcCartesianPoint>(ox, oy, oz);
|
IfcSchema::IfcCartesianPoint* o = addTriplet<IfcSchema::IfcCartesianPoint>(ox, oy, oz);
|
||||||
IfcSchema::IfcAxis2Placement3D* p3d = new IfcSchema::IfcAxis2Placement3D(o, z, x);
|
IfcSchema::IfcAxis2Placement3D* p3d = new IfcSchema::IfcAxis2Placement3D(o, z, x);
|
||||||
AddEntity(p3d);
|
addEntity(p3d);
|
||||||
return p3d;
|
return p3d;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ IfcSchema::IfcAxis2Placement2D* IfcHierarchyHelper::addPlacement2d(
|
|||||||
IfcSchema::IfcDirection* x = addDoublet<IfcSchema::IfcDirection>(xx, xy);
|
IfcSchema::IfcDirection* x = addDoublet<IfcSchema::IfcDirection>(xx, xy);
|
||||||
IfcSchema::IfcCartesianPoint* o = addDoublet<IfcSchema::IfcCartesianPoint>(ox, oy);
|
IfcSchema::IfcCartesianPoint* o = addDoublet<IfcSchema::IfcCartesianPoint>(ox, oy);
|
||||||
IfcSchema::IfcAxis2Placement2D* p2d = new IfcSchema::IfcAxis2Placement2D(o, x);
|
IfcSchema::IfcAxis2Placement2D* p2d = new IfcSchema::IfcAxis2Placement2D(o, x);
|
||||||
AddEntity(p2d);
|
addEntity(p2d);
|
||||||
return p2d;
|
return p2d;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ IfcSchema::IfcLocalPlacement* IfcHierarchyHelper::addLocalPlacement(IfcSchema::I
|
|||||||
IfcSchema::IfcLocalPlacement* lp = new IfcSchema::IfcLocalPlacement(parent,
|
IfcSchema::IfcLocalPlacement* lp = new IfcSchema::IfcLocalPlacement(parent,
|
||||||
addPlacement3d(ox, oy, oz, zx, zy, zz, xx, xy, xz));
|
addPlacement3d(ox, oy, oz, zx, zy, zz, xx, xy, xz));
|
||||||
|
|
||||||
AddEntity(lp);
|
addEntity(lp);
|
||||||
return lp;
|
return lp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,11 +80,11 @@ IfcSchema::IfcOwnerHistory* IfcHierarchyHelper::addOwnerHistory() {
|
|||||||
IfcSchema::IfcOwnerHistory* owner_hist = new IfcSchema::IfcOwnerHistory(person_and_org, application,
|
IfcSchema::IfcOwnerHistory* owner_hist = new IfcSchema::IfcOwnerHistory(person_and_org, application,
|
||||||
boost::none, IfcSchema::IfcChangeActionEnum::IfcChangeAction_ADDED, timestamp, person_and_org, application, timestamp);
|
boost::none, IfcSchema::IfcChangeActionEnum::IfcChangeAction_ADDED, timestamp, person_and_org, application, timestamp);
|
||||||
|
|
||||||
AddEntity(person);
|
addEntity(person);
|
||||||
AddEntity(organization);
|
addEntity(organization);
|
||||||
AddEntity(person_and_org);
|
addEntity(person_and_org);
|
||||||
AddEntity(application);
|
addEntity(application);
|
||||||
AddEntity(owner_hist);
|
addEntity(owner_hist);
|
||||||
|
|
||||||
return owner_hist;
|
return owner_hist;
|
||||||
}
|
}
|
||||||
@@ -111,13 +111,13 @@ IfcSchema::IfcProject* IfcHierarchyHelper::addProject(IfcSchema::IfcOwnerHistory
|
|||||||
IfcSchema::IfcProject* project = new IfcSchema::IfcProject(IfcWrite::IfcGuidHelper(), owner_hist, boost::none, boost::none,
|
IfcSchema::IfcProject* project = new IfcSchema::IfcProject(IfcWrite::IfcGuidHelper(), owner_hist, boost::none, boost::none,
|
||||||
boost::none, boost::none, boost::none, rep_contexts, unit_assignment);
|
boost::none, boost::none, boost::none, rep_contexts, unit_assignment);
|
||||||
|
|
||||||
AddEntity(dimexp);
|
addEntity(dimexp);
|
||||||
AddEntity(unit1);
|
addEntity(unit1);
|
||||||
AddEntity(unit2a);
|
addEntity(unit2a);
|
||||||
AddEntity(unit2b);
|
addEntity(unit2b);
|
||||||
AddEntity(unit2);
|
addEntity(unit2);
|
||||||
AddEntity(unit_assignment);
|
addEntity(unit_assignment);
|
||||||
AddEntity(project);
|
addEntity(project);
|
||||||
|
|
||||||
return project;
|
return project;
|
||||||
}
|
}
|
||||||
@@ -151,7 +151,7 @@ IfcSchema::IfcSite* IfcHierarchyHelper::addSite(IfcSchema::IfcProject* proj, Ifc
|
|||||||
IfcSchema::IfcElementCompositionEnum::IfcElementComposition_ELEMENT,
|
IfcSchema::IfcElementCompositionEnum::IfcElementComposition_ELEMENT,
|
||||||
boost::none, boost::none, boost::none, boost::none, 0);
|
boost::none, boost::none, boost::none, boost::none, 0);
|
||||||
|
|
||||||
AddEntity(site);
|
addEntity(site);
|
||||||
addRelatedObject<IfcSchema::IfcRelAggregates>(proj, site);
|
addRelatedObject<IfcSchema::IfcRelAggregates>(proj, site);
|
||||||
return site;
|
return site;
|
||||||
}
|
}
|
||||||
@@ -173,7 +173,7 @@ IfcSchema::IfcBuilding* IfcHierarchyHelper::addBuilding(IfcSchema::IfcSite* site
|
|||||||
addLocalPlacement(), 0, boost::none, IfcSchema::IfcElementCompositionEnum::IfcElementComposition_ELEMENT,
|
addLocalPlacement(), 0, boost::none, IfcSchema::IfcElementCompositionEnum::IfcElementComposition_ELEMENT,
|
||||||
boost::none, boost::none, 0);
|
boost::none, boost::none, 0);
|
||||||
|
|
||||||
AddEntity(building);
|
addEntity(building);
|
||||||
addRelatedObject<IfcSchema::IfcRelAggregates>(site, building);
|
addRelatedObject<IfcSchema::IfcRelAggregates>(site, building);
|
||||||
relatePlacements(site, building);
|
relatePlacements(site, building);
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ IfcSchema::IfcBuildingStorey* IfcHierarchyHelper::addBuildingStorey(IfcSchema::I
|
|||||||
owner_hist, boost::none, boost::none, boost::none, addLocalPlacement(), 0, boost::none,
|
owner_hist, boost::none, boost::none, boost::none, addLocalPlacement(), 0, boost::none,
|
||||||
IfcSchema::IfcElementCompositionEnum::IfcElementComposition_ELEMENT, boost::none);
|
IfcSchema::IfcElementCompositionEnum::IfcElementComposition_ELEMENT, boost::none);
|
||||||
|
|
||||||
AddEntity(storey);
|
addEntity(storey);
|
||||||
addRelatedObject<IfcSchema::IfcRelAggregates>(building, storey);
|
addRelatedObject<IfcSchema::IfcRelAggregates>(building, storey);
|
||||||
relatePlacements(building, storey);
|
relatePlacements(building, storey);
|
||||||
|
|
||||||
@@ -221,7 +221,7 @@ IfcSchema::IfcBuildingStorey* IfcHierarchyHelper::addBuildingProduct(IfcSchema::
|
|||||||
if (! storey) {
|
if (! storey) {
|
||||||
storey = addBuildingStorey(0, owner_hist);
|
storey = addBuildingStorey(0, owner_hist);
|
||||||
}
|
}
|
||||||
AddEntity(product);
|
addEntity(product);
|
||||||
// CV-2x3-158: Don't add decompositions directly to a building storey
|
// CV-2x3-158: Don't add decompositions directly to a building storey
|
||||||
bool is_decomposition = false;
|
bool is_decomposition = false;
|
||||||
#ifdef USE_IFC4
|
#ifdef USE_IFC4
|
||||||
@@ -263,9 +263,9 @@ void IfcHierarchyHelper::addExtrudedPolyline(IfcSchema::IfcShapeRepresentation*
|
|||||||
items->push(solid);
|
items->push(solid);
|
||||||
rep->setItems(items);
|
rep->setItems(items);
|
||||||
|
|
||||||
AddEntity(line);
|
addEntity(line);
|
||||||
AddEntity(profile);
|
addEntity(profile);
|
||||||
AddEntity(solid);
|
addEntity(solid);
|
||||||
}
|
}
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* IfcHierarchyHelper::addExtrudedPolyline(const std::vector<std::pair<double, double> >& points, double h,
|
IfcSchema::IfcProductDefinitionShape* IfcHierarchyHelper::addExtrudedPolyline(const std::vector<std::pair<double, double> >& points, double h,
|
||||||
@@ -279,8 +279,8 @@ IfcSchema::IfcProductDefinitionShape* IfcHierarchyHelper::addExtrudedPolyline(co
|
|||||||
: getRepresentationContext("Model"), std::string("Body"), std::string("SweptSolid"), items);
|
: getRepresentationContext("Model"), std::string("Body"), std::string("SweptSolid"), items);
|
||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
||||||
AddEntity(rep);
|
addEntity(rep);
|
||||||
AddEntity(shape);
|
addEntity(shape);
|
||||||
addExtrudedPolyline(rep, points, h, place, place2, dir, context);
|
addExtrudedPolyline(rep, points, h, place, place2, dir, context);
|
||||||
|
|
||||||
return shape;
|
return shape;
|
||||||
@@ -296,8 +296,8 @@ void IfcHierarchyHelper::addBox(IfcSchema::IfcShapeRepresentation* rep, double w
|
|||||||
IfcSchema::IfcExtrudedAreaSolid* solid = new IfcSchema::IfcExtrudedAreaSolid(profile,
|
IfcSchema::IfcExtrudedAreaSolid* solid = new IfcSchema::IfcExtrudedAreaSolid(profile,
|
||||||
place2 ? place2 : addPlacement3d(), dir ? dir : addTriplet<IfcSchema::IfcDirection>(0, 0, 1), h);
|
place2 ? place2 : addPlacement3d(), dir ? dir : addTriplet<IfcSchema::IfcDirection>(0, 0, 1), h);
|
||||||
|
|
||||||
AddEntity(profile);
|
addEntity(profile);
|
||||||
AddEntity(solid);
|
addEntity(solid);
|
||||||
IfcSchema::IfcRepresentationItem::list::ptr items = rep->Items();
|
IfcSchema::IfcRepresentationItem::list::ptr items = rep->Items();
|
||||||
items->push(solid);
|
items->push(solid);
|
||||||
rep->setItems(items);
|
rep->setItems(items);
|
||||||
@@ -318,7 +318,7 @@ void IfcHierarchyHelper::addAxis(IfcSchema::IfcShapeRepresentation* rep, double
|
|||||||
IfcSchema::IfcCartesianPoint::list::ptr pts(new IfcSchema::IfcCartesianPoint::list);
|
IfcSchema::IfcCartesianPoint::list::ptr pts(new IfcSchema::IfcCartesianPoint::list);
|
||||||
pts->push(p1); pts->push(p2);
|
pts->push(p1); pts->push(p2);
|
||||||
IfcSchema::IfcPolyline* poly = new IfcSchema::IfcPolyline(pts);
|
IfcSchema::IfcPolyline* poly = new IfcSchema::IfcPolyline(pts);
|
||||||
AddEntity(poly);
|
addEntity(poly);
|
||||||
|
|
||||||
IfcSchema::IfcRepresentationItem::list::ptr items = rep->Items();
|
IfcSchema::IfcRepresentationItem::list::ptr items = rep->Items();
|
||||||
items->push(poly);
|
items->push(poly);
|
||||||
@@ -334,8 +334,8 @@ IfcSchema::IfcProductDefinitionShape* IfcHierarchyHelper::addBox(double w, doubl
|
|||||||
context ? context : getRepresentationContext("Model"), std::string("Body"), std::string("SweptSolid"), items);
|
context ? context : getRepresentationContext("Model"), std::string("Body"), std::string("SweptSolid"), items);
|
||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
||||||
AddEntity(rep);
|
addEntity(rep);
|
||||||
AddEntity(shape);
|
addEntity(shape);
|
||||||
addBox(rep, w, d, h, place, place2, dir, context);
|
addBox(rep, w, d, h, place, place2, dir, context);
|
||||||
return shape;
|
return shape;
|
||||||
}
|
}
|
||||||
@@ -355,10 +355,10 @@ IfcSchema::IfcProductDefinitionShape* IfcHierarchyHelper::addAxisBox(double w, d
|
|||||||
reps->push(body_rep);
|
reps->push(body_rep);
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
||||||
AddEntity(shape);
|
addEntity(shape);
|
||||||
AddEntity(body_rep);
|
addEntity(body_rep);
|
||||||
addBox(body_rep, w, d, h, 0, 0, 0, context);
|
addBox(body_rep, w, d, h, 0, 0, 0, context);
|
||||||
AddEntity(axis_rep);
|
addEntity(axis_rep);
|
||||||
addAxis(axis_rep, w);
|
addAxis(axis_rep, w);
|
||||||
|
|
||||||
return shape;
|
return shape;
|
||||||
@@ -379,8 +379,8 @@ void IfcHierarchyHelper::clipRepresentation(IfcSchema::IfcRepresentation* rep,
|
|||||||
if (rep->RepresentationIdentifier() != "Body") return;
|
if (rep->RepresentationIdentifier() != "Body") return;
|
||||||
IfcSchema::IfcPlane* plane = new IfcSchema::IfcPlane(place);
|
IfcSchema::IfcPlane* plane = new IfcSchema::IfcPlane(place);
|
||||||
IfcSchema::IfcHalfSpaceSolid* half_space = new IfcSchema::IfcHalfSpaceSolid(plane, agree);
|
IfcSchema::IfcHalfSpaceSolid* half_space = new IfcSchema::IfcHalfSpaceSolid(plane, agree);
|
||||||
AddEntity(plane);
|
addEntity(plane);
|
||||||
AddEntity(half_space);
|
addEntity(half_space);
|
||||||
rep->setRepresentationType("Clipping");
|
rep->setRepresentationType("Clipping");
|
||||||
IfcSchema::IfcRepresentationItem::list::ptr items = rep->Items();
|
IfcSchema::IfcRepresentationItem::list::ptr items = rep->Items();
|
||||||
IfcSchema::IfcRepresentationItem::list::ptr new_items (new IfcSchema::IfcRepresentationItem::list);
|
IfcSchema::IfcRepresentationItem::list::ptr new_items (new IfcSchema::IfcRepresentationItem::list);
|
||||||
@@ -388,7 +388,7 @@ void IfcHierarchyHelper::clipRepresentation(IfcSchema::IfcRepresentation* rep,
|
|||||||
IfcSchema::IfcRepresentationItem* item = *i;
|
IfcSchema::IfcRepresentationItem* item = *i;
|
||||||
IfcSchema::IfcBooleanClippingResult* clip = new IfcSchema::IfcBooleanClippingResult(
|
IfcSchema::IfcBooleanClippingResult* clip = new IfcSchema::IfcBooleanClippingResult(
|
||||||
IfcSchema::IfcBooleanOperator::IfcBooleanOperator_DIFFERENCE, item, half_space);
|
IfcSchema::IfcBooleanOperator::IfcBooleanOperator_DIFFERENCE, item, half_space);
|
||||||
AddEntity(clip);
|
addEntity(clip);
|
||||||
new_items->push(clip);
|
new_items->push(clip);
|
||||||
}
|
}
|
||||||
rep->setItems(new_items);
|
rep->setItems(new_items);
|
||||||
@@ -410,10 +410,10 @@ IfcSchema::IfcPresentationStyleAssignment* IfcHierarchyHelper::addStyleAssignmen
|
|||||||
surface_styles->push(surface_style);
|
surface_styles->push(surface_style);
|
||||||
IfcSchema::IfcPresentationStyleAssignment* style_assignment =
|
IfcSchema::IfcPresentationStyleAssignment* style_assignment =
|
||||||
new IfcSchema::IfcPresentationStyleAssignment(surface_styles);
|
new IfcSchema::IfcPresentationStyleAssignment(surface_styles);
|
||||||
AddEntity(colour);
|
addEntity(colour);
|
||||||
AddEntity(rendering);
|
addEntity(rendering);
|
||||||
AddEntity(surface_style);
|
addEntity(surface_style);
|
||||||
AddEntity(style_assignment);
|
addEntity(style_assignment);
|
||||||
return style_assignment;
|
return style_assignment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -455,7 +455,7 @@ void IfcHierarchyHelper::setSurfaceColour(IfcSchema::IfcRepresentation* rep,
|
|||||||
for (IfcSchema::IfcRepresentationItem::list::it i = items->begin(); i != items->end(); ++i) {
|
for (IfcSchema::IfcRepresentationItem::list::it i = items->begin(); i != items->end(); ++i) {
|
||||||
IfcSchema::IfcRepresentationItem* item = *i;
|
IfcSchema::IfcRepresentationItem* item = *i;
|
||||||
IfcSchema::IfcStyledItem* styled_item = new IfcSchema::IfcStyledItem(item, style_assignments, boost::none);
|
IfcSchema::IfcStyledItem* styled_item = new IfcSchema::IfcStyledItem(item, style_assignments, boost::none);
|
||||||
AddEntity(styled_item);
|
addEntity(styled_item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -470,7 +470,7 @@ IfcSchema::IfcProductDefinitionShape* IfcHierarchyHelper::addMappedItem(
|
|||||||
map = *maps->begin();
|
map = *maps->begin();
|
||||||
} else {
|
} else {
|
||||||
map = new IfcSchema::IfcRepresentationMap(addPlacement3d(), rep);
|
map = new IfcSchema::IfcRepresentationMap(addPlacement3d(), rep);
|
||||||
AddEntity(map);
|
addEntity(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
IfcSchema::IfcRepresentation::list::ptr representations(new IfcSchema::IfcRepresentation::list);
|
IfcSchema::IfcRepresentation::list::ptr representations(new IfcSchema::IfcRepresentation::list);
|
||||||
@@ -478,7 +478,7 @@ IfcSchema::IfcProductDefinitionShape* IfcHierarchyHelper::addMappedItem(
|
|||||||
|
|
||||||
if (!transform) {
|
if (!transform) {
|
||||||
transform = new IfcSchema::IfcCartesianTransformationOperator3D(0, 0, addTriplet<IfcSchema::IfcCartesianPoint>(0,0,0), boost::none, 0);
|
transform = new IfcSchema::IfcCartesianTransformationOperator3D(0, 0, addTriplet<IfcSchema::IfcCartesianPoint>(0,0,0), boost::none, 0);
|
||||||
AddEntity(transform);
|
addEntity(transform);
|
||||||
}
|
}
|
||||||
IfcSchema::IfcMappedItem* item = new IfcSchema::IfcMappedItem(map, transform);
|
IfcSchema::IfcMappedItem* item = new IfcSchema::IfcMappedItem(map, transform);
|
||||||
IfcSchema::IfcRepresentationItem::list::ptr items(new IfcSchema::IfcRepresentationItem::list);
|
IfcSchema::IfcRepresentationItem::list::ptr items(new IfcSchema::IfcRepresentationItem::list);
|
||||||
@@ -487,12 +487,12 @@ IfcSchema::IfcProductDefinitionShape* IfcHierarchyHelper::addMappedItem(
|
|||||||
if (rep->hasRepresentationIdentifier()) {
|
if (rep->hasRepresentationIdentifier()) {
|
||||||
new_rep->setRepresentationIdentifier(rep->RepresentationIdentifier());
|
new_rep->setRepresentationIdentifier(rep->RepresentationIdentifier());
|
||||||
}
|
}
|
||||||
AddEntity(item);
|
addEntity(item);
|
||||||
AddEntity(new_rep);
|
addEntity(new_rep);
|
||||||
representations->push(new_rep);
|
representations->push(new_rep);
|
||||||
if (!def) {
|
if (!def) {
|
||||||
def = new IfcSchema::IfcProductDefinitionShape(boost::none, boost::none, representations);
|
def = new IfcSchema::IfcProductDefinitionShape(boost::none, boost::none, representations);
|
||||||
AddEntity(def);
|
addEntity(def);
|
||||||
} else {
|
} else {
|
||||||
def->setRepresentations(representations);
|
def->setRepresentations(representations);
|
||||||
}
|
}
|
||||||
@@ -513,7 +513,7 @@ IfcSchema::IfcProductDefinitionShape* IfcHierarchyHelper::addMappedItem(
|
|||||||
IfcSchema::IfcShapeRepresentation* IfcHierarchyHelper::addEmptyRepresentation(const std::string& repid, const std::string& reptype) {
|
IfcSchema::IfcShapeRepresentation* IfcHierarchyHelper::addEmptyRepresentation(const std::string& repid, const std::string& reptype) {
|
||||||
IfcSchema::IfcRepresentationItem::list::ptr items(new IfcSchema::IfcRepresentationItem::list);
|
IfcSchema::IfcRepresentationItem::list::ptr items(new IfcSchema::IfcRepresentationItem::list);
|
||||||
IfcSchema::IfcShapeRepresentation* shape_rep = new IfcSchema::IfcShapeRepresentation(getRepresentationContext(reptype == "Curve2D" ? "Plan" : "Model"), repid, reptype, items);
|
IfcSchema::IfcShapeRepresentation* shape_rep = new IfcSchema::IfcShapeRepresentation(getRepresentationContext(reptype == "Curve2D" ? "Plan" : "Model"), repid, reptype, items);
|
||||||
AddEntity(shape_rep);
|
addEntity(shape_rep);
|
||||||
return shape_rep;
|
return shape_rep;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -525,7 +525,7 @@ IfcSchema::IfcGeometricRepresentationContext* IfcHierarchyHelper::getRepresentat
|
|||||||
IfcSchema::IfcRepresentationContext::list::ptr project_contexts = project->RepresentationContexts();
|
IfcSchema::IfcRepresentationContext::list::ptr project_contexts = project->RepresentationContexts();
|
||||||
IfcSchema::IfcGeometricRepresentationContext* context = new IfcSchema::IfcGeometricRepresentationContext(
|
IfcSchema::IfcGeometricRepresentationContext* context = new IfcSchema::IfcGeometricRepresentationContext(
|
||||||
boost::none, s, 3, 1e-5, addPlacement3d(), addDoublet<IfcSchema::IfcDirection>(0, 1));
|
boost::none, s, 3, 1e-5, addPlacement3d(), addDoublet<IfcSchema::IfcDirection>(0, 1));
|
||||||
AddEntity(context);
|
addEntity(context);
|
||||||
project_contexts->push(context);
|
project_contexts->push(context);
|
||||||
project->setRepresentationContexts(project_contexts);
|
project->setRepresentationContexts(project_contexts);
|
||||||
return contexts[s] = context;
|
return contexts[s] = context;
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public:
|
|||||||
T* addTriplet(double x, double y, double z) {
|
T* addTriplet(double x, double y, double z) {
|
||||||
std::vector<double> a; a.push_back(x); a.push_back(y); a.push_back(z);
|
std::vector<double> a; a.push_back(x); a.push_back(y); a.push_back(z);
|
||||||
T* t = new T(a);
|
T* t = new T(a);
|
||||||
AddEntity(t);
|
addEntity(t);
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ public:
|
|||||||
T* addDoublet(double x, double y) {
|
T* addDoublet(double x, double y) {
|
||||||
std::vector<double> a; a.push_back(x); a.push_back(y);
|
std::vector<double> a; a.push_back(x); a.push_back(y);
|
||||||
T* t = new T(a);
|
T* t = new T(a);
|
||||||
AddEntity(t);
|
addEntity(t);
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@ public:
|
|||||||
IfcSchema::IfcObjectDefinition::list::ptr relating_objects (new IfcTemplatedEntityList<IfcSchema::IfcObjectDefinition>());
|
IfcSchema::IfcObjectDefinition::list::ptr relating_objects (new IfcTemplatedEntityList<IfcSchema::IfcObjectDefinition>());
|
||||||
relating_objects->push(relating_object);
|
relating_objects->push(relating_object);
|
||||||
T* t = new T(IfcWrite::IfcGuidHelper(), owner_hist, boost::none, boost::none, related_object, relating_objects);
|
T* t = new T(IfcWrite::IfcGuidHelper(), owner_hist, boost::none, boost::none, related_object, relating_objects);
|
||||||
AddEntity(t);
|
addEntity(t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ inline void IfcHierarchyHelper::addRelatedObject <IfcSchema::IfcRelContainedInSp
|
|||||||
IfcSchema::IfcRelContainedInSpatialStructure* t = new IfcSchema::IfcRelContainedInSpatialStructure(IfcWrite::IfcGuidHelper(), owner_hist,
|
IfcSchema::IfcRelContainedInSpatialStructure* t = new IfcSchema::IfcRelContainedInSpatialStructure(IfcWrite::IfcGuidHelper(), owner_hist,
|
||||||
boost::none, boost::none, relating_objects, (IfcSchema::IfcSpatialStructureElement*)related_object);
|
boost::none, boost::none, relating_objects, (IfcSchema::IfcSpatialStructureElement*)related_object);
|
||||||
|
|
||||||
AddEntity(t);
|
addEntity(t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -965,11 +965,11 @@ IfcEntityList::ptr IfcFile::traverse(IfcUtil::IfcBaseClass* instance, int max_le
|
|||||||
|
|
||||||
void IfcFile::AddEntities(IfcEntityList::ptr es) {
|
void IfcFile::AddEntities(IfcEntityList::ptr es) {
|
||||||
for( IfcEntityList::it i = es->begin(); i != es->end(); ++ i ) {
|
for( IfcEntityList::it i = es->begin(); i != es->end(); ++ i ) {
|
||||||
AddEntity(*i);
|
addEntity(*i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IfcUtil::IfcBaseClass* IfcFile::AddEntity(IfcUtil::IfcBaseClass* entity) {
|
IfcUtil::IfcBaseClass* IfcFile::addEntity(IfcUtil::IfcBaseClass* entity) {
|
||||||
// If this instance has been inserted before, return
|
// If this instance has been inserted before, return
|
||||||
// a reference to the copy that was created from it.
|
// a reference to the copy that was created from it.
|
||||||
entity_entity_map_t::iterator it = entity_file_map.find(entity);
|
entity_entity_map_t::iterator it = entity_file_map.find(entity);
|
||||||
@@ -982,7 +982,7 @@ IfcUtil::IfcBaseClass* IfcFile::AddEntity(IfcUtil::IfcBaseClass* entity) {
|
|||||||
{ IfcEntityList::ptr entity_attributes = traverse(entity, 1);
|
{ IfcEntityList::ptr entity_attributes = traverse(entity, 1);
|
||||||
for (IfcEntityList::it it = entity_attributes->begin(); it != entity_attributes->end(); ++it) {
|
for (IfcEntityList::it it = entity_attributes->begin(); it != entity_attributes->end(); ++it) {
|
||||||
if (*it != entity) {
|
if (*it != entity) {
|
||||||
entity_file_map.insert(entity_entity_map_t::value_type(*it, AddEntity(*it)));
|
entity_file_map.insert(entity_entity_map_t::value_type(*it, addEntity(*it)));
|
||||||
}
|
}
|
||||||
} }
|
} }
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ namespace IfcUtil {
|
|||||||
%ignore IfcParse::IfcFile::Init;
|
%ignore IfcParse::IfcFile::Init;
|
||||||
%ignore IfcParse::IfcFile::EntityById;
|
%ignore IfcParse::IfcFile::EntityById;
|
||||||
%ignore IfcParse::IfcFile::EntityByGuid;
|
%ignore IfcParse::IfcFile::EntityByGuid;
|
||||||
%ignore IfcParse::IfcFile::AddEntity;
|
%ignore IfcParse::IfcFile::addEntity;
|
||||||
%ignore IfcParse::IfcFile::removeEntity;
|
%ignore IfcParse::IfcFile::removeEntity;
|
||||||
%ignore IfcParse::IfcFile::traverse(IfcUtil::IfcBaseClass*, int);
|
%ignore IfcParse::IfcFile::traverse(IfcUtil::IfcBaseClass*, int);
|
||||||
%ignore IfcParse::IfcFile::traverse(IfcUtil::IfcBaseClass*);
|
%ignore IfcParse::IfcFile::traverse(IfcUtil::IfcBaseClass*);
|
||||||
@@ -186,7 +186,7 @@ namespace IfcUtil {
|
|||||||
return (IfcParse::IfcLateBoundEntity*) $self->EntityByGuid(guid);
|
return (IfcParse::IfcLateBoundEntity*) $self->EntityByGuid(guid);
|
||||||
}
|
}
|
||||||
IfcParse::IfcLateBoundEntity* add(IfcParse::IfcLateBoundEntity* e) {
|
IfcParse::IfcLateBoundEntity* add(IfcParse::IfcLateBoundEntity* e) {
|
||||||
return (IfcParse::IfcLateBoundEntity*) $self->AddEntity(e);
|
return (IfcParse::IfcLateBoundEntity*) $self->addEntity(e);
|
||||||
}
|
}
|
||||||
void remove(IfcParse::IfcLateBoundEntity* e) {
|
void remove(IfcParse::IfcLateBoundEntity* e) {
|
||||||
$self->removeEntity(e);
|
$self->removeEntity(e);
|
||||||
|
|||||||
Reference in New Issue
Block a user