C# Class BuildingCoder.Creator

Show file Open project: jeremytammik/the_building_coder_samples Class Usage Examples

Public Methods

Method Description
CreateModelCurve ( Curve curve ) : ModelCurve
CreateModelCurves ( Curve curve ) : ModelCurveArray
CreateModelLine ( Document doc, XYZ p, XYZ q ) : ModelLine

Create a model line between the two given points. Internally, it creates an arbitrary sketch plane given the model line end points.

Creator ( Document doc ) : System
DrawFaceTriangleNormals ( Face f ) : void
DrawPolygon ( List loop ) : void
DrawPolygons ( List loops ) : void

Private Methods

Method Description
CreateModelCurve ( Curve curve, XYZ origin, XYZ normal ) : ModelCurve
GetCurveNormal ( Curve curve ) : XYZ

Determine the plane that a given curve resides in and return its normal vector. Ask the curve for its start and end points and some point in the middle. The latter can be obtained by asking the curve for its parameter range and evaluating it in the middle, or by tessellation. In case of tessellation, you could iterate through the tessellation points and use each one together with the start and end points to try and determine a valid plane. Once one is found, you can add debug assertions to ensure that the other tessellation points (if there are any more) are in the same plane. In the case of the line, the tessellation only returns two points. I once heard that that is the only element that can do that, all non-linear curves return at least three. So you could use this property to determine that a line is a line (and add an assertion as well, if you like). Update, later: please note that the Revit API provides an overload of the NewPlane method taking a CurveArray argument.

NewSketchPlaneContainCurve ( Curve curve ) : SketchPlane

Return a new sketch plane containing the given curve. Update, later: please note that the Revit API provides an overload of the NewPlane method taking a CurveArray argument, which could presumably be used instead.

NewSketchPlanePassLine ( System.Line line ) : SketchPlane

Method Details

CreateModelCurve() public method

public CreateModelCurve ( Curve curve ) : ModelCurve
curve Curve
return ModelCurve

CreateModelCurves() public method

public CreateModelCurves ( Curve curve ) : ModelCurveArray
curve Curve
return ModelCurveArray

CreateModelLine() public static method

Create a model line between the two given points. Internally, it creates an arbitrary sketch plane given the model line end points.
public static CreateModelLine ( Document doc, XYZ p, XYZ q ) : ModelLine
doc Document
p XYZ
q XYZ
return ModelLine

Creator() public method

public Creator ( Document doc ) : System
doc Document
return System

DrawFaceTriangleNormals() public method

public DrawFaceTriangleNormals ( Face f ) : void
f Face
return void

DrawPolygon() public method

public DrawPolygon ( List loop ) : void
loop List
return void

DrawPolygons() public method

public DrawPolygons ( List loops ) : void
loops List
return void