Hi,
Is there a way to findout that AcDbBlockTableRecord is dynamic block except of iterating it?
thanks in advance
moshe
Solved! Go to Solution.
Solved by Alexander.Rivilis. Go to Solution.
static bool AcDbDynBlockReference::isDynamicBlock( AcDbObjectId blockTableRecordId );
This method help you to identify if block is dynamic or no.
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Alexander,
thanx for your reply.
but that not what i'm asking, i what to know if AcDbBlockTableRecord is dynamic?
let's say i have in database some old blocks version in AcDbBlockTable and i want to upgrade them to a new
version which is dynamic. with AcDbDynBlockReference::isDynamicBlock() i have to catch one
block reference and check it...but what if there isn't any insert? should i do a dummy insert to check it?
that's sounds unlogic.
Moshe
@Moshe-A wrote:
Alexander,
but what if there isn't any insert? should i do a dummy insert to check it?
No. This method is static. That is why you can use it same way:
AcDbObjectId idBTR; // id of BlockTableRecord if (AcDbDynBlockReference::isDynamicBlock(idBTR)) { acutPrintf(_T("\nBlock is dynamic")); } else { acutPrintf(_T("\nBlock is not dynamic")); }
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Alexander,
wait...
In order to be able to use -> AcDbDynBlockReference::isDynamicBlock(AcDbObjectId blockTableRecordId);
first you need to construct AcDbDynBlockReference with AcDbBlockReference object as an argument
AcDbDynBlockReference(AcDbBlockReference* pRef);
AcDbDynBlockReference(AcDbObjectId blockRefId);
so this send me back to start, Am i right?
moshe
NO! NO! NO!
Are you know how to call static method of class? OK. Full sample:
static void CheckDynBlock(void) { ACHAR blockName[512]; if (acedGetString(TRUE,_T("\nBlock name: "), blockName) == RTNORM) { AcDbBlockTableRecordPointer pBTR(blockName, acdbCurDwg(), AcDb::kForRead); if (pBTR.openStatus() == Acad::eOk) { if (AcDbDynBlockReference::isDynamicBlock(pBTR->objectId())) { acutPrintf(_T("\nBlock <%s> is dynamic."), blockName); } else { acutPrintf(_T("\nBlock <%s> is not dynamic."), blockName); } } else { acutPrintf(_T("\nCan not open block <%s>. Error: <%s>"), blockName, acadErrorStatusText(pBTR.openStatus())); } } }
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
@Moshe-A wrote:
got it, thank you
And what about Accept solution?
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Can't find what you're looking for? Ask the community or share your knowledge.