API Reference > imodeljs-frontend > LocatingElements > SnapDetail SnapDetail Class A SnapDetail is generated from the result of IModelDb.requestSnap call. In addition to the HitDetail about the reason the element was picked, it holds the exact point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode. Extends HitDetail Extended by IntersectDetail Methods Name Description constructor(from: HitDetail, snapMode: SnapMode = SnapMode.Nearest, heat: SnapHeat = SnapHeat.None, snapPoint?: XYZProps): SnapDetail Constructor for SnapDetail. clone(): SnapDetail Make a copy of this SnapDetail. draw(context: DecorateContext): void getCurvePrimitive(singleSegment: boolean = true): CurvePrimitive | undefined getHitType(): HitDetailType Returns HitDetailType.Snap getPoint(): Point3d Get the snap point if this SnapDetail is hot, the pick point otherwise. setCurvePrimitive(primitive?: CurvePrimitive, localToWorld?: Transform, geomType?: HitGeomType): void Set curve primitive and HitGeometryType for this SnapDetail. setSnapPoint(point: Point3d, heat: SnapHeat): void Change the snap point. Inherited methods Name Inherited from Description getToolTip(): Promise<HTMLElement | string> HitDetail Get the tooltip content for this HitDetail. isSameHit(otherHit?: HitDetail): boolean HitDetail Determine if this HitPoint is from the same source as another HitDetail. Properties Name Type Description adjustedPoint Point3d AccuSnap/AccuDraw can adjust the point after the snap. geomType undefined | HitGeomType The HitGeomType of this SnapDetail heat ConstructorProperty SnapHeat The SnapHeat of this SnapDetail isHot Accessor ReadOnly boolean Return true if the pick point was closer than SnapRequestProps.snapAperture from the generated snap point. isPointAdjusted Accessor ReadOnly boolean Determine whether the SnapDetail.adjustedPoint is different than the SnapDetail.snapPoint. normal undefined | Vector3d Surface normal at snapPoint parentGeomType undefined | HitParentGeomType The HitGeomType of this SnapDetail primitive undefined | CurvePrimitive Curve primitive for snap. snapMode ConstructorProperty SnapMode The SnapMode used to create this SnapDetail snapPoint Point3d HitPoint adjusted by snap sprite undefined | Sprite A sprite to show the user the type of snap performed Inherited properties Name Type Inherited from Description distFraction ConstructorProperty number HitDetail The near plane distance fraction to hit. distXY ConstructorProperty number HitDetail The xy distance to hit in view coordinates. geometryClass ConstructorProperty undefined | GeometryClass HitDetail The GeometryClass for a persistent element hit. hitPoint ConstructorProperty Point3d HitDetail The approximate world coordinate location on the geometry identified by this HitDetail. hitSource ConstructorProperty HitSource HitDetail The procedure that requested the locate operation. isElementHit Accessor ReadOnly boolean HitDetail Return whether sourceId is for a persistent element and not a pickable decoration. isModelHit Accessor ReadOnly boolean HitDetail modelId ConstructorProperty undefined | string HitDetail Optionally the Id of the ModelState from which the hit originated. priority ConstructorProperty HitPriority HitDetail The hit geometry priority/classification. sourceId ConstructorProperty string HitDetail The source of the geometry, either a persistent element id or pickable decoration id. subCategoryId ConstructorProperty undefined | string HitDetail The SubCategory for a persistent element hit. testPoint ConstructorProperty Point3d HitDetail The world coordinate space point that was used as the locate point. viewport ConstructorProperty ScreenViewport HitDetail The view the locate operation was performed in. Defined in core/frontend/src/HitDetail.ts Line 180 Last Updated: 13 June, 2024