GeometryGym.Ifc.IfcElement.IfcElement C# (CSharp) Méthode

IfcElement() protected méthode

protected IfcElement ( IfcProduct host, GeometryGym.Ifc.IfcMaterialProfileSetUsage profile, IfcAxis2Placement3D placement, double>.Tuple arcOrigin, double arcAngle ) : System
host IfcProduct
profile GeometryGym.Ifc.IfcMaterialProfileSetUsage
placement IfcAxis2Placement3D
arcOrigin double>.Tuple
arcAngle double
Résultat System
		protected IfcElement(IfcProduct host, IfcMaterialProfileSetUsage profile, IfcAxis2Placement3D placement, Tuple<double,double> arcOrigin, double arcAngle) : base(host, new IfcLocalPlacement(host.Placement, placement), null)
		{
			IfcMaterialProfileSet ps = profile.ForProfileSet;
			profile.Associates.addAssociation(this);
			IfcMaterialProfile mp = ps.MaterialProfiles[0];
			IfcProfileDef pd = mp.Profile;
			DatabaseIfc db = host.mDatabase; 
			List<IfcShapeModel> reps = new List<IfcShapeModel>();
			double length = Math.Sqrt(Math.Pow(arcOrigin.Item1, 2) + Math.Pow(arcOrigin.Item2, 2)), angMultipler = 1 / mDatabase.mContext.UnitsInContext.getScaleSI(IfcUnitEnum.PLANEANGLEUNIT);
			Tuple<double, double> normal = new Tuple<double, double>(-arcOrigin.Item2 / length, arcOrigin.Item1 / length);
			reps.Add(IfcShapeRepresentation.GetAxisRep(new IfcTrimmedCurve(new IfcCircle(new IfcAxis2Placement3D(new IfcCartesianPoint(db,arcOrigin.Item1,arcOrigin.Item2,0),new IfcDirection(db, normal.Item1,normal.Item2, 0), new IfcDirection(db,-arcOrigin.Item1,-arcOrigin.Item2,0)),length),new IfcTrimmingSelect(0),new IfcTrimmingSelect(arcAngle*angMultipler),true, IfcTrimmingPreference.PARAMETER)));
			IfcAxis2Placement3D translation = pd.CalculateTransform(profile.CardinalPoint);
			Tuple<double,double,double> pt = translation.Location.Coordinates;
			IfcAxis1Placement axis = new IfcAxis1Placement(new IfcCartesianPoint(db, arcOrigin.Item1 - pt.Item1, arcOrigin.Item2 - pt.Item2), new IfcDirection(db, normal.Item1, normal.Item2));
			reps.Add(new IfcShapeRepresentation(new IfcRevolvedAreaSolid(pd, translation, axis, arcAngle * angMultipler)));
			Representation = new IfcProductDefinitionShape(reps);
		}
		protected static void parseFields(IfcElement e, List<string> arrFields, ref int ipos) { IfcProduct.parseFields(e, arrFields, ref ipos); e.mTag = arrFields[ipos++].Replace("'", ""); }

Same methods

IfcElement::IfcElement ( ) : System
IfcElement::IfcElement ( DatabaseIfc db ) : System
IfcElement::IfcElement ( DatabaseIfc db, IfcElement e, bool downStream ) : System
IfcElement::IfcElement ( IfcElement basis ) : System
IfcElement::IfcElement ( IfcObjectDefinition host, IfcObjectPlacement p, IfcProductRepresentation r ) : System
IfcElement::IfcElement ( IfcProduct host, GeometryGym.Ifc.IfcMaterialProfileSetUsage profile, IfcAxis2Placement3D placement, double length ) : System