轴网API


在新的ABD CE SDK update 3 中,我们提供了轴网API,来协助用户开发自己的应用。这里简单介绍相关的概念和应用。

概念

下图是ABD中的轴网管理对话框。在这个对话框中,我们可以生成,修改并保存轴网信息。

GridLine,GridLineList

在轴网API中,这两个名词代表轴网的线条,及线条所附加的标注和标记。

GridSystem

一套轴网就是一个GridSystem。GridSystem有自己的名字,绑定的楼层和楼。

DrawingGrid

ABD中的Project,会有一个DrawingGrid。

API

轴网API有C语言和C#两个版本。这里给出C#版本的例子。

public BBA.ITFLoadableProject GetCurrentProject()
{
    BBA.ITFApplication appInst = new BBA.TFApplicationList();

    BBA.ITFLoadableProject proj;
    BBA.ITFLoadableProjectList projList;

    if (0 == appInst.GetProject(0, out projList) && projList != null)
    {
        proj = projList.AsTFLoadableProject;
        return proj;
    }

    return null;
}

public void ReadGridLine()
{
    BBA.ITFDrawingGrid drawingGrid = null;
    BBA.ITFGridSystemList gridSystems = null;

    BBA.ITFLoadableProject proj = GetCurrentProject();

    if (null == proj)
        return;

    proj.GetDrawingGrid(false, 0, out drawingGrid);

    if (null == drawingGrid)
        return;

    drawingGrid.GetGridSystems(0, out gridSystems);
    BBA.ITFGridSystemList gridSystemNode = gridSystems;

    for (BBA.ITFGridSystem gridSystem = gridSystemNode.AsTFGridSystem;
        gridSystem != null;
        gridSystemNode.GetNext("", out gridSystemNode), gridSystem = (gridSystemNode != null) ? gridSystemNode.AsTFGridSystem : null)
    {
        BBA.ITFGridCurveList curves;
        gridSystem.GetGridCurves(0, out curves);
        BBA.ITFGridCurveList gridCurveNode = curves;

        for (BBA.ITFGridCurve gridCurve = gridCurveNode.AsTFGridCurve;
            gridCurve != null;
            gridCurveNode.GetNext("", out gridCurveNode), gridCurve = gridCurveNode != null ? gridCurveNode.AsTFGridCurve : null)
        {
            BBA.TFdGridCurveType curveType;
            gridCurve.GetType(0, out curveType);
            double gridValue;
            gridCurve.GetValue(0, out gridValue);
        }
    }
}

这段代码主要是便利当前项目的轴网系统,获得轴网的属性。这段简单的测试代码可以利用建立一个最简单的应用程序C#版本文章里提供的一个简单的工程来测试。