Tekla Open API

Detailed and full API reference helps you master Tekla Open API

This is the most recent version of Tekla Open API.
For older versions, please visit Tekla Warehouse.

FacetedBrepFace Class

The FacetedBrepFace class defines a face of a faceted BREP. A FacetedBrepFace cannot be instantiated directly. They are managed internally by a FacetedBrep.
Inheritance Hierarchy
SystemObject
  Tekla.Structures.Geometry3dFacetedBrepFace

Namespace:  Tekla.Structures.Geometry3d
Assembly:  Tekla.Structures (in Tekla.Structures.dll) Version: 2018.1.0.0 (2018.1.0.0)
Syntax
[SerializableAttribute]
public class FacetedBrepFace

The FacetedBrepFace type exposes the following members.

Properties
  Name Description
Public property HasHoles
Gets a value indicating whether this instance has holes.
Public property Holes
Gets the holes.
Public property IsReadOnly
Gets a value indicating whether this instance is read only.
Public property VerticeIndexes
Gets the vertex indexes.
Public property Vertices
Gets the vertices.
Top
Examples
using System.Linq;
using Tekla.Structures.Geometry3d;

public class Example
{

public void PrintHoleVerticesFromCubeFace()
{

    var cubeWithHoleVertices = new[]
    {
        new Vector(   0.0,    0.0,    0.0),   // 0
        new Vector( 500.0,    0.0,    0.0),   // 1
        new Vector( 500.0,  500.0,    0.0),   // 2
        new Vector(   0.0,  500.0,    0.0),   // 3
        new Vector(   0.0,    0.0,  500.0),   // 4
        new Vector( 500.0,    0.0,  500.0),   // 5
        new Vector( 500.0,  500.0,  500.0),   // 6
        new Vector(   0.0,  500.0,  500.0),   // 7

        new Vector( 100.0,  100.0,  0.0),     // 8
        new Vector( 300.0,  100.0,  0.0),     // 9
        new Vector( 300.0,  300.0,  0.0),     // 10
        new Vector( 100.0,  300.0,  0.0),     // 11

        new Vector( 100.0,  100.0, 500.0),    // 12
        new Vector( 300.0,  100.0, 500.0),    // 13
        new Vector( 300.0,  300.0, 500.0),    // 14
        new Vector( 100.0,  300.0, 500.0),    // 15
    };

    var outloops = new[]
    {
        new[] {  0,  3,  2,  1 },
        new[] {  0,  1,  5,  4 },
        new[] {  1,  2,  6,  5 },
        new[] {  2,  3,  7,  6 },
        new[] {  3,  0,  4,  7 },
        new[] {  4,  5,  6,  7 },

        new[] { 15, 12,   8, 11 },
        new[] { 14, 15,  11, 10 },
        new[] { 13, 14,  10,  9 },
        new[] { 12, 13,   9,  8 }
    };

    var innerLoops = new Dictionary{int, int[][]}
    {
        { 0, new[] { new[] {  8,  9, 10, 11 } } }, // this innerloop is on face 0
        { 5, new[] { new[] { 12, 15, 14, 13 } } }, // this innerloop is on face 5
    };

    var brep = new FacetedBrep(cubeWithHoleVertices, outloops, innerLoops);

    foreach (FacetedBrepFace face in brep.Faces.Where(x => x.HasHoles))
    {
        foreach (FacetedBrepFaceHole hole in face.Holes)
        {
            foreach (Vector vertex in hole.Vertices)
            {
                Console.WriteLine("Hole point x:{0} y:{1} z:{2}", vertex.X, vertex.Y, vertex.Z);
            }
        }
    }
} // QueryHoleFromCubeFace
} // Example
See Also