Hello,
I need to change some Properties of a Steel Beam Element in Open Building Designer Update 8 using the C-Api "stfc-api"..
Until now I've been able to read the "LinearMember" out of the EditElementHandle and to change some Properties in it using
following Code:
virtual StatusInt _OnElementModify(EditElementHandleR eehSteelBeam) override { StatusInt statusInt; MSElementDescrP elmDescrP = eehSteelBeam .GetElementDescrP(); STFLinearMemberList* linearMemberListP=mdlSTFLinearMemberList_constructFromDescr(elmDescrP , false); //SUCCESS if (!linearMemberListP)return ERROR; STFLinearMember* linearMemberP=mdlSTFLinearMemberList_getLinearMember ( linearMemberListP ); //SUCCESS if (!linearMemberP)return ERROR; DPoint3d pP = { 0,0,0 }; DPoint3d pQ = { 0,0,0 }; mdlSTFLinearMember_getPQPoints(linearMemberP,&pP, &pQ); //SUCCESS pQ.z += 2000000; statusInt= mdlSTFLinearMember_setPQPoints(linearMemberP, &pP, &pQ); //SUCCESS statusInt=mdlSTFLinearMember_save(linearMemberP, false); //ERROR: 32768 //statusInt = mdlSTFLinearMember_replaceInDgn(linearMemberP); ////ERROR: 32768 mdlSTFLinearMemberList_free(&linearMemberListP); return SUCCESS;
But when I try to save it to the DGN It allways brings The ErrorSatus (StatusInt) = 32768 and nothing happens.
I tried "mdlSTFLinearMember_replaceInDgn" , "mdlSTFLinearMember_save" and "mdlSTFLinearMember_addToDgnExt" but nothing is working.
Hopefully there is sombody out there with some experience with the Open Building SDK.
Many thanks in advance for your efforts
Greetings
Manuel Höger
Softwareentwicklung | mhoeger@cadcom.de Tel: +49 30 - 53 63 62 – 44 | Mobil: +49 162 - 53 18 640
cadcom® Systemhaus GmbH Stralauer Platz 33 | Kontorhaus |10243 Berlin Tel: +49 30 - 53 63 62 – 0 | Fax: +49 30 - 53 63 62 - 30 www.cadcom.de
Sorry my fault, Was too late yesterday... I missed to change this function. Now it works perfectly.
Wonderful! Thanks.
Maybe you have some more additional Function hints about placing Architectural (TriForma) Elements like a ladder or other parametric cell Elements (I try to place a Parametric (CEL) cell.? This would be so nice!
[OBD SDK C++ Update 9] Placing Triforma Element with "Loadables" - OpenBuildings | AECOsim | Speedikon | Forum - OpenBuildings | AECOsim | Speedikon - Bentley Communities
Wonderful, I will take a look at placing parametric cells with API
Not the normal parametric Cells, but the user defined Catalog Element Cells. Defined as "Paradef:Cel(Parametric)" in Calalog Manager. Just for clarity!
Tanks again and in advance!
Hi Mykolas,
Is it possible that you send me the rest of the mdlstfstructuralmember_ header signatures? I want to create a structural member as well and at the moment I'm doing this with a dotnet workaround. This is not very satisfying.
Manu
Here it is
TFAPI_EXPOSE void mdlSTFStructuralMemberClass_freeMem ( void* pMem ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMemberList_constructFromCurveDescr ( STFStructuralMemberList* pThis, MSElementDescr* pDescr, DgnModelRefP pModelRef ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_initialize ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_initFromElementDescr ( STFStructuralMember* pThis, MSElementDescr* pDescr ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_copeWithDefaults ( STFStructuralMember* pThis, STFStructuralMember* pThat, bool cutAtStart ); TFAPI_EXPOSE STFStructuralMemberList* mdlSTFStructuralMemberList_constructFromElementDescr ( MSElementDescr* pDescr ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setRotation ( STFStructuralMember* pThis, double rotation ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setRotationDegrees ( STFStructuralMember* pThis, double rotation ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_getRotation ( STFStructuralMember const* pThis, double* pRotation ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_getRotationDegrees ( STFStructuralMember const* pThis, double* pRotation ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setPlacementPoint ( STFStructuralMember* pThis, int placementPoint ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_getPlacementPoint ( STFStructuralMember const* pThis, int* pPlacementPoint ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_getInsertOffset ( STFStructuralMember const* pThis, double* pOffsetX, double* pOffsetY ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setInsertOffset ( STFStructuralMember* pThis, double offsetX, double offsetY ); TFAPI_EXPOSE bool mdlSTFStructuralMember_isMirrored ( STFStructuralMember const* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setMirror ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_resetMirror ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setSlope ( STFStructuralMember* pThis, double slope ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setPQPoints ( STFStructuralMember* pThis, DPoint3d* pP, DPoint3d* pQ ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_getPQPoints ( STFStructuralMember* pThis, DPoint3d* pP, DPoint3d* pQ ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setFullCrossSection ( STFStructuralMember* pThis, WChar const* fullSectionName ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setCrossSection ( STFStructuralMember* pThis, int shapeType, WChar const* shapeClass, WChar const* sectionName ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setPSSection ( STFStructuralMember* pThis, STFPSSection const* pSection ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_getCrossSection ( STFStructuralMember const* pThis, STFPSSectionList** pSectionList ); TFAPI_EXPOSE bool mdlSTFStructuralMember_hasFireproofing ( STFStructuralMember* pThis ); TFAPI_EXPOSE MSElementDescr* mdlSTFStructuralMember_getFireproofingElement ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setCatalogItem ( STFStructuralMember* pThis, TFCatalogItemList* pCatalogItem ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setCatalogItem2 ( STFStructuralMember* pThis, WChar const* pDataGroupType, WChar const* pDataGroupItem, bool updatePartFamilyValues ); TFAPI_EXPOSE TFCatalogItemList* mdlSTFStructuralMember_getCatalogItem ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_initNamedProperties ( STFStructuralMember* pThis, TFWStringList const* pType, TFWStringList const* pName ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_getNamedPropertyValue ( STFStructuralMember const* pThis, TFWStringList const* pPropName, bool bDuplicate, TFWStringList** ppPropValue ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setNamedPropertyValue ( STFStructuralMember* pThis, TFWStringList const* pPropName, TFWStringList const* pPropValue ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setPartNameAndFamily ( STFStructuralMember* pThis, TFWStringList const* pPartName, TFWStringList const* pPartFamily ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setPartFamily ( STFStructuralMember* pThis, TFWStringList const* pPartFamily ); TFAPI_EXPOSE TFWStringList* mdlSTFStructuralMember_getPartFamily ( STFStructuralMember const* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setPartName ( STFStructuralMember* pThis, TFWStringList const* pPartName ); TFAPI_EXPOSE TFWStringList* mdlSTFStructuralMember_getPartName ( STFStructuralMember const* pThis ); TFAPI_EXPOSE TFWStringList* mdlSTFStructuralMember_getMaterialName ( STFStructuralMember const* pThis ); TFAPI_EXPOSE TFWStringList* mdlSTFStructuralMember_getMaterialGrade ( STFStructuralMember const* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_initStructuralDataFromPart ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setTypeString ( STFStructuralMember* pThis, WChar const* pTypeString ); ( STFStructuralMember* pThis, int stringNumber, WChar const* str ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setMark ( STFStructuralMember* pThis, WChar const* pMark ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setMaterial ( STFStructuralMember* pThis, WChar const* pName, WChar const* pGrade ); TFAPI_EXPOSE MSElementDescr* mdlSTFStructuralMember_createElementWritten ( STFStructuralMember* pThis, DgnModelRefP pModelRef ); TFAPI_EXPOSE MSElementDescr* mdlSTFStructuralMember_createElement ( STFStructuralMember const* pThis, DgnModelRefP pModelRef ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_swap ( STFStructuralMember* pThis, STFStructuralMember* pThat ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_duplicate ( STFStructuralMember* pThis, STFStructuralMemberList** ppCopy ); TFAPI_EXPOSE STFStructuralMemberList* mdlSTFStructuralMember_getGeometryAtFraction ( STFStructuralMember* pThis, double start, double end ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_replaceInModel ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_updateWithObdDataInModel ( STFStructuralMember* pThis ); TFAPI_EXPOSE bool mdlSTFStructuralMember_hasStructuralDataAttached ( STFStructuralMember* pThis ); TFAPI_EXPOSE TFFormRecipeList* mdlSTFStructuralMember_getTFFormRecipeList ( STFStructuralMember* pThis ); TFAPI_EXPOSE STFStructuralMemberList* mdlSTFStructuralMemberList_getNext ( STFStructuralMemberList* pThis ); TFAPI_EXPOSE void mdlSTFStructuralMemberList_free ( STFStructuralMemberList** ppThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMemberList_setNext ( STFStructuralMemberList* pThis, STFStructuralMemberList* pNext ); TFAPI_EXPOSE STFStructuralMemberList* mdlSTFStructuralMemberList_construct ( void ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMemberList_construct2 ( STFStructuralMemberList** ppThis, STFStructuralMember* pStructuralMember ); TFAPI_EXPOSE STFStructuralMemberList* mdlSTFStructuralMemberList_getLast ( STFStructuralMemberList* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMemberList_append ( STFStructuralMemberList** ppThis, STFStructuralMemberList* pAppendList ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMemberList_addMember ( STFStructuralMemberList** ppThis, STFStructuralMember* pStructuralMember ); TFAPI_EXPOSE STFStructuralMember* mdlSTFStructuralMemberList_getStructuralMember ( STFStructuralMemberList* pThis ); TFAPI_EXPOSE STFStructuralMemberList* mdlSTFStructuralMemberList_duplicate ( STFStructuralMemberList* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMemberList_prepend ( STFStructuralMemberList** ppThis, STFStructuralMemberList* pAdd ); TFAPI_EXPOSE void mdlSTFStructuralMemberList_insertList ( STFStructuralMemberList* pThis, STFStructuralMemberList* pInsert ); TFAPI_EXPOSE STFStructuralMemberList* mdlSTFStructuralMemberList_unlinkNode ( STFStructuralMemberList** ppThis, STFStructuralMemberList* pRemove ); TFAPI_EXPOSE int mdlSTFStructuralMemberList_getIndex ( STFStructuralMemberList const* pThis, STFStructuralMemberList const* pSearch ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMemberList_reverse ( STFStructuralMemberList** ppThis ); TFAPI_EXPOSE STFStructuralMemberList* mdlSTFStructuralMemberList_getNode ( STFStructuralMemberList* pThis, int index ); TFAPI_EXPOSE int mdlSTFStructuralMemberList_getCount ( STFStructuralMemberList const* pThis ); TFAPI_EXPOSE STFStructuralMemberList* mdlSTFStructuralMemberList_constructFromFilePos ( ULong filePos, DgnModelRefP pModelRef ); TFAPI_EXPOSE DgnModelRefP mdlSTFStructuralMember_getModelRef ( STFStructuralMember const* pThis ); TFAPI_EXPOSE TFIdList* mdlSTFStructuralMember_getFireProofingIdList ( STFStructuralMember const* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setFireProofingIdList ( STFStructuralMember* pThis, TFIdList* pIdList ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_reWriteFireProofingIdListToFile ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_replaceInDgn ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setStructuralPropertyByName ( STFStructuralMember* pThis, WChar const* name, WChar const* value ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_cope ( STFStructuralMember* pThis, STFStructuralMember* pThat, bool cutAtStart, int layout, int edgeLayout, double flangeClearance, double webClearance, double radiusCorner ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_copeRich ( STFStructuralMember* pThis, STFStructuralMember* pThat, bool cutAtStart, int layout, int edgeLayout, double topOutside, double topEdge, double topInside, double downOutside, double downEdge, double downInside, double web, double radius ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_delete ( STFStructuralMember* pThis ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_setSymbology ( STFStructuralMember* pThis, TFSymbology* pSymbology ); TFAPI_EXPOSE StatusInt mdlSTFStructuralMember_getOrientationVectors ( STFStructuralMember const* pThis, DVec3d* pXVec, DVec3d* pYVec, DVec3d* pZVec, DgnModelRefP pModelRef );