首页 / 浏览问题 / 组件GIS / 问题详情
怎么从udbx文件中获取各个构件的属性信息?
2EXP 2020年03月16日
将BIM文件导出成udbx数据集后,怎么从udbx文件中获取各个构件的属性信息?用什么组件?

1个回答

您好,通过Java组件获取到数据集dataset,然后获取数据集的记录集recordset,最后通过recordset.getFieldValue()获取属性信息。详细代码可以参考API文档
9,232EXP 2020年03月17日
怎么打开本地udbx文件并获取dataset?
通过WorkspaceConnectionInfo获取吗?
数据集是通过数据源来获取的,可以通过WorkspaceConnectionInfo工作空间连接参数打开工作空间Workspace,然后获取其中的数据源:workspace.getDatasources.get();或者直接通过数据源连接参数DatasourceConnectionInfo数据源连接参数打开数据源datasource

·

Workspace workspace = new Workspace();
WorkspaceConnectionInfo workspaceConnectionInfo = new
        WorkspaceConnectionInfo();
workspaceConnectionInfo.setType(WorkspaceType.SXW);
String file = "F:\\workdata\\ProjectDocument\\天府管廊项目\\超图模板\\雅州路.udbx";
workspaceConnectionInfo.setServer(file);
workspace.open(workspaceConnectionInfo);
Datasource datasource = workspace.getDatasources().get(0);
Recordset recordset = null;
int fieldCount = recordset.getFieldCount();
System.out.println("fieldCount = " + fieldCount);
DatasetVector dataset = (DatasetVector) datasource.getDatasets().get(
        "雅州路");
System.out.println("数据集的描述信息为:" + dataset.getDescription());

这个是获取数据集的代码,但是没获取到?
Datasource datasource = workspace.getDatasources().get(0);这行报数组越界异常

代码是错的,使用工作空间连接参数来打开工作空间,路径就是工作空间的路径,而不是数据源的路径。目前的版本工作空间后缀名为SMWU/SXWU,那么在设置工作空间类型的时候就需要设置为WorkspaceType.SMWU/WorkspaceType.SXWU,建议你那边参考一下我们的示范demo,基本上所有的demo都有获取数据源的
...