GraphicBuilder Class

Provides methods for constructing a RenderGraphic from geometric primitives. GraphicBuilder is primarily used for creating Decorations to be displayed inside a Viewport.

The typical process for constructing a RenderGraphic proceeds as follows:

  1. Use DecorateContext.createGraphic or RenderSystem.createGraphic to obtain a builder.
  2. Set up the symbology using GraphicBuilder.activateGraphicParams or GraphicBuilder.setSymbology.
  3. Add one or more geometric primitives using methods like GraphicBuilder.addShape and GraphicBuilder.addLineString, possibly setting new symbology in between.
  4. Use GraphicBuilder.finish to produce the finished RenderGraphic.

note Most of the methods which add geometry to the builder take ownership of their inputs rather than cloning them. So, for example, if you pass an array of points to addLineString(), you should not subsequently modify that array.

extensions

Methods

Name Description
_activateFeature(_feature: Feature): void Protected Called by GraphicBuilder.activateFeature after validation to change the Feature to be associated with subsequently-added geometry.  
activateFeature(feature: Feature): void Change the Feature to be associated with subsequently-added geometry.  
activateGraphicParams(graphicParams: GraphicParams): void Abstract Sets the current active symbology for this builder.  
activatePickableId(id: string): void Change the pickable Id to be associated with subsequently-added geometry.  
addArc(arc: Arc3d, isEllipse: boolean, filled: boolean): void Abstract Appends a 3d open arc or closed ellipse to the builder.  
addArc2d(ellipse: Arc3d, isEllipse: boolean, filled: boolean, zDepth: number): void Abstract Appends a 2d open arc or closed ellipse to the builder.  
addCurvePrimitive(curve: AnyCurvePrimitive): void Append a CurvePrimitive to the builder.  
addFrustum(frustum: Frustum): void Add Frustum edges.  
addLineString(points: Point3d[]): void Abstract Appends a 3d line string to the builder.  
addLineString2d(points: Point2d[], zDepth: number): void Abstract Appends a 2d line string to the builder.  
addLoop(loop: Loop): void Abstract Append a 3d planar region to the builder.  
addPath(path: Path): void Abstract Append a 3d open path to the builder.  
addPointString(points: Point3d[]): void Abstract Appends a 3d point string to the builder.  
addPointString2d(points: Point2d[], zDepth: number): void Abstract Appends a 2d point string to the builder.  
addPolyface(meshData: Polyface, filled: boolean): void Abstract Append a mesh to the builder.  
addPrimitive(primitive: GraphicPrimitive): void Append any primitive to the builder.  
addRangeBox(range: Range3d, solid: boolean = false): void Add a box representing a volume of space.  
addRangeBoxFromCorners(p: Point3d[]): void Add range edges from corner points  
addShape(points: Point3d[]): void Abstract Appends a closed 3d planar region to the builder.  
addShape2d(points: Point2d[], zDepth: number): void Abstract Appends a closed 2d region to the builder.  
addSolidPrimitive(solidPrimitive: SolidPrimitive): void Abstract Append a solid primitive to the builder.  
finish(): RenderGraphic Abstract Processes the accumulated symbology and geometry to produce a renderable graphic.  
setBlankingFill(fillColor: ColorDef): void Set the current active symbology for this builder to be a blanking fill before adding a planar region.  
setSymbology(lineColor: ColorDef, fillColor: ColorDef, lineWidth: number, linePixels: LinePixels = LinePixels.Solid): void Sets the current active symbology for this builder.  

Properties

Name Type Description
_computeChordTolerance ProtectedReadonly (args: ComputeChordToleranceArgs) => number    
_options ProtectedReadonly CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions    
iModel Readonly undefined | IModelConnection The iModel associated with this builder, if any.  
isOverlay Accessor ReadOnly boolean True if the builder produces a graphic of GraphicType.WorldOverlay or GraphicType.ViewOerlay.  
isSceneGraphic Accessor ReadOnly boolean True if the builder produces a graphic of GraphicType.Scene.  
isViewBackground Accessor ReadOnly boolean True if the builder produces a graphic of GraphicType.ViewBackground.  
isViewCoordinates Accessor ReadOnly boolean Whether the builder's geometry is defined in CoordSystem.View coordinates.  
isWorldCoordinates Accessor ReadOnly boolean Whether the builder's geometry is defined in CoordSystem.World coordinates.  
pickable Readonly undefined | Readonly<PickableGraphicOptions> If the graphic is to be pickable, specifies the pickable Id and other options.  
pickId Accessor ReadOnly undefined | string The Id to be associated with the graphic for picking.  
placement Readonly Transform The local coordinate system transform applied to this builder's geometry.  
preserveOrder Readonly boolean If true, the order in which geometry is added to the builder is preserved.  
type Readonly GraphicType The type of graphic to be produced by this builder.  
wantEdges Readonly boolean Controls whether edges are generated for surfaces.  
wantNormals Readonly boolean Controls whether normals are generated for surfaces.  

Defined in

Last Updated: 30 November, 2023