#pragma once #include "dbmain.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif typedef struct FloorViewData { TCHAR m_szID[39];//唯一ID TCHAR m_szName[65];//楼层名 TCHAR m_szFloorView[17];//楼层视图 TCHAR m_szFilePath[MAX_PATH];//为空时指当前文件名 Adesk::Int16 m_nFloorIndxFr; Adesk::Int16 m_nFloorIndxTo; Adesk::Int16 m_bFloorIndxTo; Adesk::Int16 m_nFloorH;//层高 Adesk::Int16 m_nActive;//活动 }FloorViewData; class DLLIMPEXP AecFloorViewDataRecord: public AcDbObject { public: ACRX_DECLARE_MEMBERS(AecFloorViewDataRecord); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecFloorViewDataRecord(); virtual ~AecFloorViewDataRecord(); void SetProjectName(LPCTSTR pszName); void GetProjectName(CString& sName) const; void SetBomEl(double dBomEl); double GetBomEl() const; bool SetActive(int nIndex, Adesk::Int16 nActive); bool SetActive(LPCTSTR pszName, Adesk::Int16 nActive); Adesk::Int16 IsActive(int nIndex) const; Adesk::Int32 GetActiveID(CString& sID) const; void SetBasePoint(AcGePoint3d& ptBase); void GetBasePoint(AcGePoint3d &ptBase) const; void SetRem(LPCTSTR pszRem); void GetRem(CString &sRem) const; void SetFocusOn(bool bSetOn); Adesk::Int16 IsFocusOn() const; bool AddFloorViewRecord(FloorViewData& rc); bool ModifyFloorViewRecord(const FloorViewData &rc); bool RemoveFloorViewRecord(LPCTSTR pszName); int FindFloorViewRecord(LPCTSTR pszName) const; int GetCount() const; bool GetFloorViewRecord(int nIndex, FloorViewData &rc) const; bool GetFloorViewRecord(LPCTSTR pszName, FloorViewData &vData) const; virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler *filer); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler *filer) const; virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler *filer); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler *filer) const; protected: CString m_sProName; double m_dBomEl; CString m_sRem; AcGePoint3d m_ptBase; Adesk::Int16 m_nFocusOn; AcArray m_arDatas; };