SampleCreateIfcCompositeCurve
Overview
This programming manual in C# offers a practical demonstration of how to create an instance of the IfcCompositeCurve class within a model.
Sample code
For example:
Name | Value |
---|---|
Points | 0.000000,0.000000,0.000000, 5000.000000,0.000000,0.000000, 5000.000000,5000.000000,0.000000, 0.000000,5000.000000,0.000000, 0.000000,0.000000,0.000000 |
SelfIntersect | LOGICAL_FALSE |
var app = new Beaver.BcadApplication();
var doc = app.ActiveDocument;
if (doc == null)
doc = app.Documents.Add();
var stp = doc.STEPDocument;
var IfcCompositeCurve = stp.Instnaces.CreateInstance("IfcCompositeCurve"); {
var segments = new List<STEPInstance>(); {
for (int i = 0; i < Points.Count-1;i++) {
var IfcCompositeCurveSegment = stp.Instnaces.CreateInstance("IfcCompositeCurveSegment"); {
var IfcPolyline = stp.Instnaces.CreateInstance("IfcPolyline"); {
var startPt = Points[i];
var endPt = Points[i+1];
var start = AddInstance("IfcCartesianPoint"); {
double []values={startPt.X, startPt.Y, startPt.Z};
start.Attributes.AttributeAsAggregate("coordinates").values = values;
}
var end = AddInstance("IfcCartesianPoint"); {
double []values={endPt.X, endPt.Y, endPt.Z};
end.Attributes.AttributeAsAggregate("coordinates").values = values;
}
STEPInstance []pts={start, end};
IfcPolyline.Attributes.AttributeAsAggregate("Points").values = pts;
}
IfcCompositeCurveSegment.Attributes.AttributeAsBool("SameSense").Value = true;
IfcCompositeCurveSegment.Attributes.AttributeAsInst("ParentCurve").Value = IfcPolyline;
IfcCompositeCurveSegment.Attributes.AttributeAsEnum("TRANSITION").SetValue("continuous");
}
segments.Add(IfcCompositeCurveSegment);
}
}
IfcCompositeCurve.Attributes.AttributeAsLogical("SelfIntersect").Value = LOGICAL_FALSE;
IfcCompositeCurve.Attributes.AttributeAsAggregate("Segments").values = segments.ToArray();
}