mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-13 02:47:48 +00:00
Add support for IfcAsymmetricIShapeProfileDef
This commit is contained in:
+18
-15
@@ -35,7 +35,7 @@ typedef std::string S;
|
||||
typedef IfcWrite::IfcGuidHelper guid;
|
||||
boost::none_t const null = (static_cast<boost::none_t>(0));
|
||||
|
||||
void create_testcase_for(IfcSchema::IfcProfileDef::list profiles) {
|
||||
void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) {
|
||||
IfcSchema::IfcProfileDef* profile = *profiles->begin();
|
||||
const std::string profile_type = IfcSchema::Type::ToString(profile->type());
|
||||
const std::string filename = profile_type + ".ifc";
|
||||
@@ -44,7 +44,7 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list profiles) {
|
||||
file.filename(filename);
|
||||
|
||||
int i = 0;
|
||||
for (IfcSchema::IfcProfileDef::it it = profiles->begin(); it != profiles->end(); ++it, ++i) {
|
||||
for (IfcSchema::IfcProfileDef::list::it it = profiles->begin(); it != profiles->end(); ++it, ++i) {
|
||||
IfcSchema::IfcProfileDef* profile = *it;
|
||||
IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy(
|
||||
guid(), 0, S("profile"), null, null, 0, 0, null, null);
|
||||
@@ -52,7 +52,7 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list profiles) {
|
||||
file.getSingle<IfcSchema::IfcProject>()->setName(profile_type);
|
||||
product->setOwnerHistory(file.getSingle<IfcSchema::IfcOwnerHistory>());
|
||||
|
||||
product->setObjectPlacement(file.addLocalPlacement(100 * i));
|
||||
product->setObjectPlacement(file.addLocalPlacement(0, 100. * i));
|
||||
|
||||
if (profile->is(IfcSchema::Type::IfcParameterizedProfileDef)) {
|
||||
((IfcSchema::IfcParameterizedProfileDef*) profile)->setPosition(file.addPlacement2d());
|
||||
@@ -64,8 +64,8 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list profiles) {
|
||||
file.AddEntity(profile);
|
||||
file.AddEntity(solid);
|
||||
|
||||
IfcSchema::IfcRepresentation::list reps (new IfcTemplatedEntityList<IfcSchema::IfcRepresentation>());
|
||||
IfcSchema::IfcRepresentationItem::list items (new IfcTemplatedEntityList<IfcSchema::IfcRepresentationItem>());
|
||||
IfcSchema::IfcRepresentation::list::ptr reps (new IfcSchema::IfcRepresentation::list);
|
||||
IfcSchema::IfcRepresentationItem::list::ptr items (new IfcSchema::IfcRepresentationItem::list);
|
||||
|
||||
items->push(solid);
|
||||
IfcSchema::IfcShapeRepresentation* rep = new IfcSchema::IfcShapeRepresentation(
|
||||
@@ -84,7 +84,7 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list profiles) {
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcUShapeProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null));
|
||||
@@ -99,7 +99,7 @@ int main(int argc, char** argv) {
|
||||
null, 0, 50.0, 25.0, 5.0, 5.0, 1.0, 3.0, 6.0, null));
|
||||
create_testcase_for(profiles); }
|
||||
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcTShapeProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null, null, null));
|
||||
@@ -114,7 +114,7 @@ int main(int argc, char** argv) {
|
||||
null, 0, 50.0, 25.0, 5.0, 5.0, 3.0, 2.0, 1.0, 2.0, 2.0, null));
|
||||
create_testcase_for(profiles); }
|
||||
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcZShapeProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 50.0, 25.0, 5.0, 5.0, null, null));
|
||||
@@ -123,7 +123,7 @@ int main(int argc, char** argv) {
|
||||
null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0));
|
||||
create_testcase_for(profiles); }
|
||||
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcEllipseProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 25.0, 15.0));
|
||||
@@ -132,16 +132,19 @@ int main(int argc, char** argv) {
|
||||
null, 0, 15.0, 25.0));
|
||||
create_testcase_for(profiles); }
|
||||
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcIShapeProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 25.0, 50.0, 5.0, 5.0, null));
|
||||
profiles->push(new Ifc2x3::IfcIShapeProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 25.0, 50.0, 5.0, 5.0, 2.0));
|
||||
profiles->push(new Ifc2x3::IfcAsymmetricIShapeProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 25.0, 50.0, 5.0, 5.0, 2.0, 20.0, 10.0, 5.0, null));
|
||||
create_testcase_for(profiles); }
|
||||
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcLShapeProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 50.0, 25.0, 5.0, null, null, null, null, null));
|
||||
@@ -156,7 +159,7 @@ int main(int argc, char** argv) {
|
||||
null, 0, 50.0, 25.0, 5.0, 1.0, 2.0, 2.0, null, null));
|
||||
create_testcase_for(profiles); }
|
||||
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcCShapeProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 50.0, 25.0, 5.0, 10.0, null, null));
|
||||
@@ -165,7 +168,7 @@ int main(int argc, char** argv) {
|
||||
null, 0, 50.0, 25.0, 5.0, 10.0, 2.0, null));
|
||||
create_testcase_for(profiles); }
|
||||
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcCircleProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 25.0));
|
||||
@@ -174,7 +177,7 @@ int main(int argc, char** argv) {
|
||||
null, 0, 25.0, 5.0));
|
||||
create_testcase_for(profiles); }
|
||||
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcRectangleProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 50.0, 25.0));
|
||||
@@ -189,7 +192,7 @@ int main(int argc, char** argv) {
|
||||
null, 0, 50.0, 25.0, 5.0, 2.0, 4.0));
|
||||
create_testcase_for(profiles); }
|
||||
|
||||
{ IfcSchema::IfcProfileDef::list profiles (new IfcTemplatedEntityList<IfcSchema::IfcProfileDef>());
|
||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||
profiles->push(new Ifc2x3::IfcTrapeziumProfileDef(
|
||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||
null, 0, 50.0, 30.0, 25.0, 0.0));
|
||||
|
||||
@@ -331,17 +331,33 @@ bool IfcGeom::convert(const IfcSchema::IfcTrapeziumProfileDef* l, TopoDS_Shape&
|
||||
}
|
||||
|
||||
bool IfcGeom::convert(const IfcSchema::IfcIShapeProfileDef* l, TopoDS_Shape& face) {
|
||||
const double x = l->OverallWidth() / 2.0f * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
const double x1 = l->OverallWidth() / 2.0f * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
const double y = l->OverallDepth() / 2.0f * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
const double d1 = l->WebThickness() / 2.0f * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
const double d2 = l->FlangeThickness() * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
bool doFillet = l->hasFilletRadius();
|
||||
double f = 0.;
|
||||
if ( doFillet ) {
|
||||
f = l->FilletRadius() * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
const double dy1 = l->FlangeThickness() * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
|
||||
bool doFillet1 = l->hasFilletRadius();
|
||||
double f1 = 0.;
|
||||
if ( doFillet1 ) {
|
||||
f1 = l->FilletRadius() * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
}
|
||||
|
||||
if ( x == 0.0f || y == 0.0f || d1 == 0.0f || d2 == 0.0f ) {
|
||||
bool doFillet2 = doFillet1;
|
||||
double x2 = x1, dy2 = dy1, f2 = f1;
|
||||
|
||||
if (l->is(IfcSchema::Type::IfcAsymmetricIShapeProfileDef)) {
|
||||
IfcSchema::IfcAsymmetricIShapeProfileDef* assym = (IfcSchema::IfcAsymmetricIShapeProfileDef*) l;
|
||||
x2 = assym->TopFlangeWidth() / 2. * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
doFillet2 = assym->hasTopFlangeFilletRadius();
|
||||
if (doFillet2) {
|
||||
f2 = assym->TopFlangeFilletRadius() * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
}
|
||||
if (assym->hasTopFlangeThickness()) {
|
||||
dy2 = assym->TopFlangeThickness() * IfcGeom::GetValue(GV_LENGTH_UNIT);
|
||||
}
|
||||
}
|
||||
|
||||
if ( x1 < ALMOST_ZERO || x2 < ALMOST_ZERO || y < ALMOST_ZERO || d1 < ALMOST_ZERO || dy1 < ALMOST_ZERO || dy2 < ALMOST_ZERO ) {
|
||||
Logger::Message(Logger::LOG_NOTICE,"Skipping zero sized profile:",l->entity);
|
||||
return false;
|
||||
}
|
||||
@@ -349,10 +365,10 @@ bool IfcGeom::convert(const IfcSchema::IfcIShapeProfileDef* l, TopoDS_Shape& fac
|
||||
gp_Trsf2d trsf2d;
|
||||
IfcGeom::convert(l->Position(),trsf2d);
|
||||
|
||||
double coords[24] = {-x,-y,x,-y,x,-y+d2,d1,-y+d2,d1,y-d2,x,y-d2,x,y,-x,y,-x,y-d2,-d1,y-d2,-d1,-y+d2,-x,-y+d2};
|
||||
double coords[24] = {-x1,-y, x1,-y, x1,-y+dy1, d1,-y+dy1, d1,y-dy2, x2,y-dy2, x2,y, -x2,y, -x2,y-dy2, -d1,y-dy2, -d1,-y+dy1, -x1,-y+dy1};
|
||||
int fillets[4] = {3,4,9,10};
|
||||
double radii[4] = {f,f,f,f};
|
||||
return IfcGeom::profile_helper(12,coords,doFillet ? 4 : 0,fillets,radii,trsf2d,face);
|
||||
double radii[4] = {f1,f1,f2,f2};
|
||||
return IfcGeom::profile_helper(12,coords,(doFillet1||doFillet2) ? 4 : 0,fillets,radii,trsf2d,face);
|
||||
}
|
||||
|
||||
bool IfcGeom::convert(const IfcSchema::IfcZShapeProfileDef* l, TopoDS_Shape& face) {
|
||||
|
||||
@@ -83,6 +83,7 @@ FACE(IfcRectangleHollowProfileDef);
|
||||
FACE(IfcRectangleProfileDef);
|
||||
FACE(IfcTrapeziumProfileDef)
|
||||
FACE(IfcCShapeProfileDef);
|
||||
// IfcAsymmetricIShapeProfileDef included
|
||||
FACE(IfcIShapeProfileDef);
|
||||
FACE(IfcLShapeProfileDef);
|
||||
FACE(IfcTShapeProfileDef);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
|
||||
FILE_NAME('IfcIShapeProfileDef.ifc','2014-02-23T12:17:26',(''),('',''),'IfcOpenShell 0.5.0-dev','IfcOpenShell 0.5.0-dev','');
|
||||
FILE_NAME('IfcIShapeProfileDef.ifc','2014-11-26T14:27:17',(''),('',''),'IfcOpenShell 0.5.0-dev','IfcOpenShell 0.5.0-dev','');
|
||||
FILE_SCHEMA(('IFC2X3'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
@@ -9,78 +9,91 @@ DATA;
|
||||
#2=IFCORGANIZATION($,'IfcOpenShell',$,$,$);
|
||||
#3=IFCPERSONANDORGANIZATION(#1,#2,$);
|
||||
#4=IFCAPPLICATION(#2,'0.5.0-dev','IfcOpenShell','IfcOpenShell');
|
||||
#5=IFCOWNERHISTORY(#3,#4,$,.ADDED.,$,#3,#4,1393154246);
|
||||
#6=IFCDIRECTION((0.,1.,0.));
|
||||
#7=IFCDIRECTION((1.,0.,0.));
|
||||
#8=IFCDIRECTION((0.,0.,1.));
|
||||
#9=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#10=IFCAXIS2PLACEMENT3D(#9,#8,#7);
|
||||
#11=IFCGEOMETRICREPRESENTATIONCONTEXT('Plan','Model',3,1.E-005,#10,#6);
|
||||
#12=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
|
||||
#13=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
|
||||
#14=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
|
||||
#15=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.0174533),#14);
|
||||
#16=IFCCONVERSIONBASEDUNIT(#12,.PLANEANGLEUNIT.,'Degrees',#15);
|
||||
#17=IFCUNITASSIGNMENT((#13,#16));
|
||||
#18=IFCPROJECT('2KOHs4nSD9uuIi7enj9fr0',#5,'IfcIShapeProfileDef',$,$,$,$,(#11),#17);
|
||||
#19=IFCDIRECTION((1.,0.,0.));
|
||||
#20=IFCDIRECTION((0.,0.,1.));
|
||||
#21=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#22=IFCAXIS2PLACEMENT3D(#21,#20,#19);
|
||||
#23=IFCLOCALPLACEMENT($,#22);
|
||||
#24=IFCSITE('1lruVjkubEmBeYjtZqCZu2',#5,$,$,$,#23,$,$,.ELEMENT.,$,$,$,$,$);
|
||||
#25=IFCRELAGGREGATES('3OPScms790MwrpNEEp6Pme',#5,$,$,#18,(#24));
|
||||
#26=IFCDIRECTION((1.,0.,0.));
|
||||
#27=IFCDIRECTION((0.,0.,1.));
|
||||
#28=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#29=IFCAXIS2PLACEMENT3D(#28,#27,#26);
|
||||
#30=IFCLOCALPLACEMENT(#23,#29);
|
||||
#31=IFCBUILDING('06eFSA_tHCPvcQhhGyujw8',#5,$,$,$,#30,$,$,.ELEMENT.,$,$,$);
|
||||
#32=IFCRELAGGREGATES('3piPcRpsj4kufJS6uIUYEX',#5,$,$,#24,(#31));
|
||||
#33=IFCDIRECTION((1.,0.,0.));
|
||||
#34=IFCDIRECTION((0.,0.,1.));
|
||||
#35=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#36=IFCAXIS2PLACEMENT3D(#35,#34,#33);
|
||||
#37=IFCLOCALPLACEMENT(#30,#36);
|
||||
#38=IFCBUILDINGSTOREY('3wk8ZJ1Zf1LecGq5wib$UM',#5,$,$,$,#37,$,$,.ELEMENT.,$);
|
||||
#39=IFCRELAGGREGATES('26SvotDGb7Fe8d$wvMyX3W',#5,$,$,#31,(#38));
|
||||
#40=IFCBUILDINGELEMENTPROXY('3Y4tF1eJnEBwlGlOJt151k',#5,'profile',$,$,#46,#58,$,$);
|
||||
#41=IFCRELCONTAINEDINSPATIALSTRUCTURE('2IMXhEgbn6jP_MmewiOwkc',#5,$,$,(#40),#38);
|
||||
#42=IFCDIRECTION((1.,0.,0.));
|
||||
#43=IFCDIRECTION((0.,0.,1.));
|
||||
#44=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#45=IFCAXIS2PLACEMENT3D(#44,#43,#42);
|
||||
#46=IFCLOCALPLACEMENT($,#45);
|
||||
#47=IFCDIRECTION((1.,0.));
|
||||
#48=IFCCARTESIANPOINT((0.,0.));
|
||||
#49=IFCAXIS2PLACEMENT2D(#48,#47);
|
||||
#50=IFCDIRECTION((0.,0.,1.));
|
||||
#51=IFCDIRECTION((1.,0.,0.));
|
||||
#52=IFCDIRECTION((0.,0.,1.));
|
||||
#53=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#54=IFCAXIS2PLACEMENT3D(#53,#52,#51);
|
||||
#55=IFCISHAPEPROFILEDEF(.AREA.,$,#49,25.,50.,5.,5.,$);
|
||||
#56=IFCEXTRUDEDAREASOLID(#55,#54,#50,20.);
|
||||
#57=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#56));
|
||||
#58=IFCPRODUCTDEFINITIONSHAPE($,$,(#57));
|
||||
#59=IFCBUILDINGELEMENTPROXY('1MUiX0$sbEwxx8E0uTLtPY',#5,'profile',$,$,#65,#77,$,$);
|
||||
#60=IFCRELCONTAINEDINSPATIALSTRUCTURE('3QRrMzj0bCK8iRu0Ec3$Ft',#5,$,$,(#59),#38);
|
||||
#61=IFCDIRECTION((1.,0.,0.));
|
||||
#62=IFCDIRECTION((0.,0.,1.));
|
||||
#63=IFCCARTESIANPOINT((100.,0.,0.));
|
||||
#64=IFCAXIS2PLACEMENT3D(#63,#62,#61);
|
||||
#65=IFCLOCALPLACEMENT($,#64);
|
||||
#66=IFCDIRECTION((1.,0.));
|
||||
#67=IFCCARTESIANPOINT((0.,0.));
|
||||
#68=IFCAXIS2PLACEMENT2D(#67,#66);
|
||||
#69=IFCDIRECTION((0.,0.,1.));
|
||||
#70=IFCDIRECTION((1.,0.,0.));
|
||||
#71=IFCDIRECTION((0.,0.,1.));
|
||||
#72=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#73=IFCAXIS2PLACEMENT3D(#72,#71,#70);
|
||||
#74=IFCISHAPEPROFILEDEF(.AREA.,$,#68,25.,50.,5.,5.,2.);
|
||||
#75=IFCEXTRUDEDAREASOLID(#74,#73,#69,20.);
|
||||
#76=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#75));
|
||||
#77=IFCPRODUCTDEFINITIONSHAPE($,$,(#76));
|
||||
#5=IFCOWNERHISTORY(#3,#4,$,.ADDED.,1417008437,#3,#4,1417008437);
|
||||
#6=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
|
||||
#7=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
|
||||
#8=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
|
||||
#9=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453293),#8);
|
||||
#10=IFCCONVERSIONBASEDUNIT(#6,.PLANEANGLEUNIT.,'Degrees',#9);
|
||||
#11=IFCUNITASSIGNMENT((#7,#10));
|
||||
#12=IFCPROJECT('3m4yn5_O962PjTcijfzks3',#5,'IfcIShapeProfileDef',$,$,$,$,(),#11);
|
||||
#13=IFCDIRECTION((1.,0.,0.));
|
||||
#14=IFCDIRECTION((0.,0.,1.));
|
||||
#15=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#16=IFCAXIS2PLACEMENT3D(#15,#14,#13);
|
||||
#17=IFCLOCALPLACEMENT($,#16);
|
||||
#18=IFCSITE('24$986K_926AmY4iydFtGH',#5,$,$,$,#17,$,$,.ELEMENT.,$,$,$,$,$);
|
||||
#19=IFCRELAGGREGATES('1yoPiTUUb9xfZLREFmq4Z$',#5,$,$,#12,(#18));
|
||||
#20=IFCDIRECTION((1.,0.,0.));
|
||||
#21=IFCDIRECTION((0.,0.,1.));
|
||||
#22=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#23=IFCAXIS2PLACEMENT3D(#22,#21,#20);
|
||||
#24=IFCLOCALPLACEMENT(#17,#23);
|
||||
#25=IFCBUILDING('0ea_c1tET2ahOErGgHglqm',#5,$,$,$,#24,$,$,.ELEMENT.,$,$,$);
|
||||
#26=IFCRELAGGREGATES('3V7Akfyjr30heVaFOS8XR5',#5,$,$,#18,(#25));
|
||||
#27=IFCDIRECTION((1.,0.,0.));
|
||||
#28=IFCDIRECTION((0.,0.,1.));
|
||||
#29=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#30=IFCAXIS2PLACEMENT3D(#29,#28,#27);
|
||||
#31=IFCLOCALPLACEMENT(#24,#30);
|
||||
#32=IFCBUILDINGSTOREY('2MQ$o6sLD6hQTkVd4N5O$N',#5,$,$,$,#31,$,$,.ELEMENT.,$);
|
||||
#33=IFCRELAGGREGATES('28wPobaAHEn9E70QY2qB8Z',#5,$,$,#25,(#32));
|
||||
#34=IFCBUILDINGELEMENTPROXY('25O9yPEmn6yRVqMHMWnLzO',#5,'profile',$,$,#40,#52,$,$);
|
||||
#35=IFCRELCONTAINEDINSPATIALSTRUCTURE('20MhO8tBn67RjJNbxaBp0O',#5,$,$,(#34),#32);
|
||||
#36=IFCDIRECTION((1.,0.,0.));
|
||||
#37=IFCDIRECTION((0.,0.,1.));
|
||||
#38=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#39=IFCAXIS2PLACEMENT3D(#38,#37,#36);
|
||||
#40=IFCLOCALPLACEMENT($,#39);
|
||||
#41=IFCDIRECTION((1.,0.));
|
||||
#42=IFCCARTESIANPOINT((0.,0.));
|
||||
#43=IFCAXIS2PLACEMENT2D(#42,#41);
|
||||
#44=IFCDIRECTION((0.,0.,1.));
|
||||
#45=IFCDIRECTION((1.,0.,0.));
|
||||
#46=IFCDIRECTION((0.,0.,1.));
|
||||
#47=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#48=IFCAXIS2PLACEMENT3D(#47,#46,#45);
|
||||
#49=IFCISHAPEPROFILEDEF(.AREA.,$,#43,25.,50.,5.,5.,$);
|
||||
#50=IFCEXTRUDEDAREASOLID(#49,#48,#44,20.);
|
||||
#51=IFCSHAPEREPRESENTATION($,'Body','SweptSolid',(#50));
|
||||
#52=IFCPRODUCTDEFINITIONSHAPE($,$,(#51));
|
||||
#53=IFCBUILDINGELEMENTPROXY('2loPfmiir3EQ4GkWdTZtUT',#5,'profile',$,$,#59,#71,$,$);
|
||||
#54=IFCRELCONTAINEDINSPATIALSTRUCTURE('00o_PIW_fCYBRtHNmvHPuC',#5,$,$,(#53),#32);
|
||||
#55=IFCDIRECTION((1.,0.,0.));
|
||||
#56=IFCDIRECTION((0.,0.,1.));
|
||||
#57=IFCCARTESIANPOINT((100.,0.,0.));
|
||||
#58=IFCAXIS2PLACEMENT3D(#57,#56,#55);
|
||||
#59=IFCLOCALPLACEMENT($,#58);
|
||||
#60=IFCDIRECTION((1.,0.));
|
||||
#61=IFCCARTESIANPOINT((0.,0.));
|
||||
#62=IFCAXIS2PLACEMENT2D(#61,#60);
|
||||
#63=IFCDIRECTION((0.,0.,1.));
|
||||
#64=IFCDIRECTION((1.,0.,0.));
|
||||
#65=IFCDIRECTION((0.,0.,1.));
|
||||
#66=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#67=IFCAXIS2PLACEMENT3D(#66,#65,#64);
|
||||
#68=IFCISHAPEPROFILEDEF(.AREA.,$,#62,25.,50.,5.,5.,2.);
|
||||
#69=IFCEXTRUDEDAREASOLID(#68,#67,#63,20.);
|
||||
#70=IFCSHAPEREPRESENTATION($,'Body','SweptSolid',(#69));
|
||||
#71=IFCPRODUCTDEFINITIONSHAPE($,$,(#70));
|
||||
#72=IFCBUILDINGELEMENTPROXY('2UNbwWn6HDU9y9qy2HK0BH',#5,'profile',$,$,#78,#90,$,$);
|
||||
#73=IFCRELCONTAINEDINSPATIALSTRUCTURE('0epcVcwyXCFelG9nIXNUA0',#5,$,$,(#72),#32);
|
||||
#74=IFCDIRECTION((1.,0.,0.));
|
||||
#75=IFCDIRECTION((0.,0.,1.));
|
||||
#76=IFCCARTESIANPOINT((200.,0.,0.));
|
||||
#77=IFCAXIS2PLACEMENT3D(#76,#75,#74);
|
||||
#78=IFCLOCALPLACEMENT($,#77);
|
||||
#79=IFCDIRECTION((1.,0.));
|
||||
#80=IFCCARTESIANPOINT((0.,0.));
|
||||
#81=IFCAXIS2PLACEMENT2D(#80,#79);
|
||||
#82=IFCDIRECTION((0.,0.,1.));
|
||||
#83=IFCDIRECTION((1.,0.,0.));
|
||||
#84=IFCDIRECTION((0.,0.,1.));
|
||||
#85=IFCCARTESIANPOINT((0.,0.,0.));
|
||||
#86=IFCAXIS2PLACEMENT3D(#85,#84,#83);
|
||||
#87=IFCASYMMETRICISHAPEPROFILEDEF(.AREA.,$,#81,25.,50.,5.,5.,2.,20.,10.,5.,$);
|
||||
#88=IFCEXTRUDEDAREASOLID(#87,#86,#82,20.);
|
||||
#89=IFCSHAPEREPRESENTATION($,'Body','SweptSolid',(#88));
|
||||
#90=IFCPRODUCTDEFINITIONSHAPE($,$,(#89));
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
|
||||
Reference in New Issue
Block a user