16 #ifdef __SMARTFEATURE_BUILD__
17 #define SMARTFEATURE_EXPORT __declspec(dllexport)
19 #define SMARTFEATURE_EXPORT __declspec(dllimport)
22 #define ASSOCIATIVE_ELEMENT_VERSION 1
23 #define ELEMENTHANDLERID_AssociativeElementHandler 23006
55 static bmap<UInt32, IAssociativeElementFactory*> s_factories;
66 if (!m_peps[index].EvaluateElementFromHost(hostEh).IsValid())
71 return m_peps[index].EvaluateElementFromHost(hostEh);
struct DPlane3d & DPlane3dR
Definition: msgeomstructs_typedefs.h:113
virtual BentleyStatus _ObtainSolidBody(ElementHandleCR hostEh, ISolidKernelEntityPtr &body)
Obtain the solid body that will be used to slice.
Definition: Bentley.h:212
BEGIN_SMARTFEATURE_NAMESPACE typedef RefCountedPtr< struct AssociativeElement > AssociativeElementPtr
Definition: AssociativeElementAPI.h:25
bool IsDefinedByDistance() const
Definition: AssociativeElementAPI.h:194
Definition: AssociativeElementAPI.h:143
static void CreateAssociativeElement(EditElementHandleR newEeh, ElementHandleCP pTemplateEh, DgnModelRefP destinationModelRef)
Initializes an EditElementHandle to have the XAttribute for associative elements. ...
Definition: AssociativeElementAPI.h:52
AssociativeSliceOnCurve()
Definition: AssociativeElementAPI.h:199
Definition: AssociativeElementAPI.h:183
RefCountedPtr< struct AssociativeOffsetFace > AssociativeOffsetFacePtr
Definition: AssociativeElementAPI.h:27
ElementHandle GetParentElement(ElementHandleCR hostEh, int index=0) const
Obtain the parent element used to extract this element.
Definition: AssociativeElementAPI.h:64
virtual BentleyStatus _ExtractData(SmartFeatureDataSource &source) override
Definition: AssociativeElementAPI.h:101
#define SMARTFEATURE_TYPEDEFS(t)
Definition: SmartFeatureBaseDefs.h:13
virtual BentleyStatus _ObtainPlane(ElementHandleCR hostEh, DPlane3dR plane) const override
double GetOffset()
Definition: AssociativeElementAPI.h:239
double m_fraction
Definition: AssociativeElementAPI.h:187
RefCountedPtr< struct CurveVector > CurveVectorPtr
Definition: GeomApi.h:113
virtual bool IsCurveVectorType() const
Definition: AssociativeElementAPI.h:58
RefCountedPtr< struct AssociativeIntersection > AssociativeIntersectionPtr
Definition: AssociativeElementAPI.h:30
double GetOffset()
Definition: AssociativeElementAPI.h:222
void SetOffset(double offset)
Definition: AssociativeElementAPI.h:240
#define SMARTFEATURE_EXPORT
Definition: AssociativeElementAPI.h:19
uint32_t UInt32
Definition: Bentley.r.h:128
RefCountedPtr< struct AssociativeEdge > AssociativeEdgePtr
Definition: AssociativeElementAPI.h:29
virtual BentleyStatus _SaveData(SmartFeatureDataSink &sink) const override
static bool IsAssociativeElement(ElementHandleCR eh)
AssociativeSlice(ElementHandleCR hostEh, UInt32 type, UInt32 nodeId)
Definition: AssociativeElementAPI.h:148
struct DgnPlatform::EditElementHandle & EditElementHandleR
Definition: DgnPlatform.h:254
static AssociativeElementPtr Create(ElementHandleCR hostEh, FaceId id, UInt32 nodeId, UInt32 geomType, double offset=0.0)
Creates an extracted face from a solid primitive or smart feature and sets an offset of the face this...
Definition: AssociativeElementAPI.h:233
virtual bool IsCurveVectorType() const override
Definition: AssociativeElementAPI.h:196
RefCountedPtr< struct AssociativeCurveVector > AssociativeCurveVectorPtr
Definition: AssociativeElementAPI.h:26
BentleyStatus
Definition: Bentley.h:208
virtual BentleyStatus _GenerateCurveVector(ElementHandleCR hostEh, CurveVectorPtr &curveVector) override
AssociativeSlice(bvector< ElementHandle > const &dependents, bvector< UInt32 > const &nodeIds, UInt32 type)
Definition: AssociativeElementAPI.h:149
Flags
Definition: AssociativeElementAPI.h:181
virtual BentleyStatus _ObtainPlane(ElementHandleCR hostEh, DPlane3dR plane) const
Obtain the plane used to slice the solid.
Definition: AssociativeElementAPI.h:161
struct DgnPlatform::ElementHandle const * ElementHandleCP
Definition: DgnPlatform.h:260
A Bentley supplied implementation std::vector.
Definition: stdcxx/bvector.h:77
AssociativeSlice(UInt32 type)
Definition: AssociativeElementAPI.h:147
void SetOffset(double offset)
Definition: AssociativeElementAPI.h:223
static AssociativeElementPtr Create(ElementHandleCR hostEh, bvector< EdgeId > &edgeIds, UInt32 nodeId=0)
Creates an extracted edge element from a solid or smart feature.
Definition: AssociativeElementAPI.h:133
virtual bool IsSurfaceType() const
Definition: AssociativeElementAPI.h:59
#define END_SMARTFEATURE_NAMESPACE
Definition: SmartFeatureBaseDefs.h:11
#define BEGIN_SMARTFEATURE_NAMESPACE
Definition: SmartFeatureBaseDefs.h:10
Definition: AssociativeElementAPI.h:219
RefCountedPtr< struct AssociativeFace > AssociativeFacePtr
Definition: AssociativeElementAPI.h:28
static AssociativeElementPtr Create(ElementHandleCR hostEh, FaceId &faceId, UInt32 nodeId=0)
Creates an extracted face element from a solid primitive or a smart feature.
Definition: AssociativeElementAPI.h:113
struct DgnPlatform::ElementHandle const & ElementHandleCR
Definition: DgnPlatform.h:260
Definition: AssociativeElementAPI.h:177
struct Bentley::faceId FaceId
{nodeId, entityId} pair for solid topology references.
virtual BentleyStatus _GetPlaneSheet(ElementHandleCR hostEh, ISolidKernelEntityPtr &sheetBody)
Calculates the plane sheet that will be used to slice the solid.
Definition: AssociativeElementAPI.h:121
UInt32 m_flags
Definition: AssociativeElementAPI.h:188
struct DgnPlatform::DgnModelRef * DgnModelRefP
Definition: DgnPlatform.h:223
static BentleyStatus ExtractData(AssociativeElementPtr &associativeElement, ElementHandleCR eh)
Extract an associative element from an ElementHandle where it resides.
static BentleyStatus SaveData(EditElementHandleR eeh, AssociativeElementCR associativeElement)
Saves the data of an associative element into an edit element handle.
static AssociativeElementPtr Create(ElementHandleCR solidEh, ElementHandleCR pathEh, double fractionOrDistance, UInt32 nodeId, UInt32 flags)
Creates an Associative Slice On Curve.
virtual bool IsSurfaceType() const override
Definition: AssociativeElementAPI.h:197