The following is sample code from AsdkPoly::dxfOutFields():
Acad::ErrorStatus AsdkPoly::dxfOutFields(AcDbDxfFiler* filer) const { assertReadEnabled(); Acad::ErrorStatus es; if ((es = AcDbCurve::dxfOutFields(filer)) != Acad::eOk) { return es; } filer->writeItem(AcDb::kDxfSubclass, "AsdkPoly"); // Object Version // Adesk::Int16 version = VERSION; filer->writeInt16(AcDb::kDxfInt16, version); filer->writePoint2d(AcDb::kDxfXCoord, mCenter); filer->writePoint2d(AcDb::kDxfXCoord + 1, mStartPoint); filer->writeInt32(AcDb::kDxfInt32, mNumSides); // Always use max precision when writing out the normal. filer->writeVector3d(AcDb::kDxfNormalX, mPlaneNormal,16); filer->writeString(AcDb::kDxfText, mpName); filer->writeItem(AcDb::kDxfHardPointerId, mTextStyle); filer->writeDouble(AcDb::kDxfReal, mElevation); return filer->filerStatus(); }