首页 / 浏览问题 / 组件GIS / 问题详情
如何从udb的三维数据集中提取三维属性并保存成属性数据集?
11EXP 2020年01月13日

iObjects9D.net开发,程序要实现以下手动操作:数据集浏览属性表,提取三维模型属性,保存为属性数据集,如下图所示。请问有无提取三维模型属性接口和保存属性表为属性集的接口?多谢

1个回答

您好,这个是新建一个属性表数据集,然后遍历三维数据集里的recordset传值进去的
2,432EXP 2020年01月13日
你这个recordset重新获取一下试试呢
对于有数据的数据集能修改成功了! 但我新建的空数据集,再添加好属性后,准备给对应的属性内容赋值时,一致报错:System.ArgumentException:“Exception of type 'System.ArgumentException' was thrown.
Parameter name: name”;是不是由于空数据集添加数据,直接赋值有问题?

具体代码:

            //将已有的数据集内容复制到新建的数据集中
            Recordset newrecordset = newDatasetVector.GetRecordset(false, CursorType.Dynamic);//新建的空数据集
            newrecordset.MoveFirst();
            srcRecordset.MoveFirst();//之前已经有的数据集记录
            for (int i = 0; i < srcRecordset.RecordCount; i++)
            {
                FieldInfos fieldInfos = srcRecordset.GetFieldInfos();
                for (int j = 0; j < fieldInfos.Count; j++)
                {

                    if (fieldInfos[j].IsSystemField)
                        continue;

                    string fieldName = fieldInfos[j].Name;
                    Object content = srcRecordset.GetFieldValue(fieldName);
                    string aimFiledName = fieldName;
                    if (fieldName.StartsWith("Sm") && fieldName != "SmID" && fieldName != "SmUserID")
                    {

                        aimFiledName = "x" + aimFiledName;

                    }
                    newrecordset.Edit();
                    bool isSuc=newrecordset.SetFieldValue(aimFiledName, content);
                    newrecordset.Update();
                }

                newrecordset.MoveNext();
                srcRecordset.MoveNext();

            }

            newrecordset.Update();
必须要有对象才能赋值,空的肯定没法赋值呀
怎么给对象赋值?我只会添加所有属性字段,正在找赋值的方法。多谢
就是添加几何对象,Recordset.AddNew
...