Native Code Snippets


MicroStation CONNECT Edition Native Code Snippets

Dimensions
DimSetString
// NOTE: Provide either a HitPath or Model and Element ID
// EditElementHandle eeh(hitPath->GetHeadElem(), nullptr); OR,...
DgnModelP activeModel = ACTIVEMODEL->GetDgnModelP();
ElementId eleId = 1103;
EditElementHandle eeh(eleId, activeModel);
ElementRefP elemref = eeh.GetElementRef();

// Process Dimension Elements Only
if (DIMENSION_ELM != eeh.GetElementType())
return;
MSElementP dim = eeh.GetElementP();
DimStrings oldStrings;
DimStringConfig oldStrConfig;

// Set Pointer - To Dimension Part and Text required
mdlDim_getStrings(&oldStrings, &oldStrConfig, dim, 0);
WStringP dimtext = oldStrings.GetString(DimensionTextPartType::DIMTEXTPART_Primary, DimensionTextPartSubType::DIMTEXTSUBPART_Main);

// Override/Assign - Replacement Text
dimtext->assign(L"New Text");
mdlDim_setStrings(dim, 0, &oldStrings);

// Validate - Set range 
mdlDim_validate(dim);

// Replace - Using Modified Element
// eeh.ReplaceInModel(hitPath->GetHeadElem());, OR,...
eeh.ReplaceInModel(elemref);

// Persist - Save changes to File
ISessionMgr::GetActiveDgnFile()->ProcessChanges(DgnSaveReason::UserInitiated, 0);
Selection Set
  • [[Quickly Add Elements to Selection Set]]