在 BimRv SDK 中,您可以创建和编辑网格元素。网格元素有两种类型:直线型和弧线型。这两种网格类型都只能在水平面上创建,并且弧线型网格不能闭合。此外,网格创建仅支持模型文件类型(RVT 文件)。
下图显示了直线型网格和弧线型网格之间的区别。
网格在 OdBmGrid 类中实现。要创建直线型网格,请使用 setLine() 方法:
OdResult setLine(const OdBmGLinePtr& pLine);
要创建弧线型网格,请使用 setArc() 方法:
OdResult setArc(const OdBmGArcPtr& pArc);
示例
要创建网格,请创建一个新的网格元素并调用相应的方法来创建弧线型或直线型网格。以下是直线型网格创建的示例:
OdGePoint3d ptStart = OdGePoint3d::kOrigin;
OdGePoint3d ptEnd = OdGePoint3d(-100.0, 0.0, 0.0);
ODBM_TRANSACTION_BEGIN(t, pDb)
t.start();
OdBmGridPtr pGrid = OdBmGrid::createObject();
OdBmObjectId gridId = pDb->addElement(pGrid);
OdBmGLinePtr pGLine = OdBmGLine::createObject();
pGLine->set(ptStart, ptEnd);
OdResult res = pGrid->setLine(pGLine);
t.commit();
ODBM_TRANSACTION_END();
以下是弧线型网格创建的示例:
OdGeVector3d vecX = OdGeVector3d::kXAxis;
OdGeVector3d vecZ = OdGeVector3d::kZAxis;
double fRadius = 50.0;
OdGePoint3d ptCenter = OdGePoint3d(10.0, 20.0, 0.0);
ODBM_TRANSACTION_BEGIN(t, pDb)
t.start();
OdBmGridPtr pGrid = OdBmGrid::createObject();
OdBmObjectId gridId = pDb->addElement(pGrid);
OdGeCircArc3d arc;
arc.set(ptCenter, vecZ, vecX, fRadius, 0.0, OdaPI);
OdBmGArcPtr pGArc = OdBmGArc::createObject();
pGArc->set(arc);
OdResult res = pGrid->setArc(pGArc);
t.commit();
ODBM_TRANSACTION_END();
命令
您可以使用特殊命令在 OdaBimApp 中创建和编辑网格:GridLineCreateCmd、GridArcCreateCmd、GridLineEditCmd、GridArcEditCmd。