当前位置: 首页 > news >正文

【ArcGIS Pro二次开发】(62):复制字段

应网友需求,做了这么一个复制字段的小工具。

假定这样一个场景,手头有一个要素1,要素里有10个字段,另一个要素2,除了shape_area等图形字段外,没有其它字段。

现在的需求是,想把要素1中的8个字段复制给要素2。

这里的复制指的是将这8个字段的字段名,别名,字段类型、字段长度等信息完全复制过去。当然字段值是基于图斑的,所以不能复制,新字段的值都为空。

说白了其实就是按要素1的字段样式,在要素2中新建8个一模一样的字段。

虽然我也不清楚这个工具有没有用,有多大用,总之先做出来。


一、要实现的功能

 

如上图所示,在【字段处理】组—【字段综合】面板下,点击【复制字段】工具。

在弹出的工具框中,分别输入参数:

1、输入包含要复制字段的要素图层。

2、输入要输出字段的目标要素图层。

3、通过下拉选择要复制的字段,选择后会加入列表框4。

4、通过3选择后列出来的字段,可以选择字段行点击喧边的删除键删除不需要的字段。

生成结果如下:

如图,新增的字段完全继续了原来要素字段的属性。


二、实现流程

首先,获取要素1中要复制的8个字段。

这里先创建一个类来存储字段信息,每个字段都有4个信息要采集,用列表的方式不方便。

// 创建一个字段类
public class FieldDef
{public string fldName { get; set; }public string fldAlias { get; set; }public string fldType { get; set; }public int fldLength { get; set; }
}

再收集字段信息,存入列表:

List<FieldDef> fieldDefs = new List<FieldDef>();// 获取字段属性
foreach (string item in listbox_field.Items)
{FieldDef fd = new FieldDef();FeatureLayer featureLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>().FirstOrDefault(x => x.Name == fc_before);var inspector = new Inspector();inspector.LoadSchema(featureLayer);// 获取属性foreach (var att in inspector){// 如果符合字段名if (att.FieldName == item){fd.fldName = att.FieldName;fd.fldAlias = att.FieldAlias;fd.fldType = att.FieldType.ToString();fd.fldLength = att.Length;}}// 加入字段集合fieldDefs.Add(fd);
}

收集好字段信息后,再用GP工具【添加字段】即可:

// 复制字段
foreach (var fd in fieldDefs)
{pw.AddProcessMessage(10, time_base, $"复制字段:{fd.fldName}");Arcpy.AddField(fc_after, fd.fldName, fd.fldType, fd.fldAlias, fd.fldLength);
}

以上便实现了工具的主要功能。


三、工具文件分享

我把工具都集合成工具箱,不再单独放单个工具,可以到这里下载完整工具箱,会不断更新:

【ArcGIS Pro二次开发】:CC工具箱https://blog.csdn.net/xcc34452366/article/details/131506345PS:可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。

相关文章:

【ArcGIS Pro二次开发】(62):复制字段

应网友需求&#xff0c;做了这么一个复制字段的小工具。 假定这样一个场景&#xff0c;手头有一个要素1&#xff0c;要素里有10个字段&#xff0c;另一个要素2&#xff0c;除了shape_area等图形字段外&#xff0c;没有其它字段。 现在的需求是&#xff0c;想把要素1中的8个字…...

【Tkinter系列02/5】界面初步和布局

本文是系列文章第二部分。前文见&#xff1a;【Tkinter系列01/5】界面初步和布局_无水先生的博客-CSDN博客 说明 一般来说&#xff0c;界面开发中&#xff0c;如果不是大型的软件&#xff0c;就不必用QT之类的实现&#xff0c;用Tkinter已经足够&#xff0c;然而即便是Tkinter规…...

2023年03月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;最佳路径 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 从三角形的顶部到底部有很多条不同的路径。对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;和最大的路径称为最佳路径。你的任务就是求出最佳路径上的…...

介绍一些编程语言— CSS 语言

介绍一些编程语言— CSS 语言 CSS 语言 简介 CSS&#xff0c;层叠样式表&#xff0c;是一种用来表现 HTML 或 XML 等文件样式的计算机语言。CSS 不仅可以静态地修饰网页&#xff0c;还可以配合各种脚本语言动态地对网页各元素进行格式化。 CSS 能够对网页中元素位置的排版进…...

一文讲清楚c/c++中的宏

一文讲清楚c/c中的宏 文章目录 一文讲清楚c/c中的宏一、如何理解这个“宏”字面的意思呢&#xff1f;二、c/c中的宏详解三、宏的使用场景 一、如何理解这个“宏”字面的意思呢&#xff1f; 在刚开始学习C语言的时候&#xff0c;始终有点分不清楚"宏"这个字面上的意思…...

typescript进阶语法

typescript进阶语法 interface 接口定义 interface userType {name:string,age:number,sex?:string }type接口定义 type userType {name:string,age:number,sex?:string } type userType username # 固定值写法 let user:userType age # 报错 只能等于usernamepick摘取…...

宝塔终端 查看 7003端口 占用 并且杀死

要查看端口是否被占用并杀死相关进程&#xff0c;你可以按照以下步骤执行&#xff1a; 打开宝塔面板&#xff0c;进入服务器管理页面。在左侧导航栏中选择「工具」&#xff0c;然后选择「终端」进入宝塔终端界面。输入以下命令查看端口占用情况&#xff1a;netstat -tuln | gr…...

可解释性的相关介绍

一、可解释性的元定义&#xff08;Meta-definitions of Interpretability&#xff09; The extent to which an individual can comprehend the cause of a model’s outcome. [1]The degree to which a human can consistently predict a model’s outcome. [2] 可解释性&am…...

AUTOSAR规范与ECU软件开发(实践篇)6.7 服务软件组件与应用层软件组件端口连接

在生成了BSW模块的代码后, 切换到ISOLAR-A系统级设计界面,会发现产生一些基础软件模块的服务软件组件: BswM、 ComM、 Det和EcuM等, 如图6.60所示。 图6.60 生成了BSW后的服务软件组件 此时, 如果涉及服务软件组件与应用层软件组件的交互, 就需要为应用层软件组…...

菜鸟教程《Python 3 教程》笔记(6):列表

菜鸟教程《Python 3 教程》笔记&#xff08;6&#xff09; 6 列表6.1 删除列表元素6.2 列表函数和方法6.2.1 max()、min()6.2.2 reverse()6.2.3 sort() 6 列表 出处&#xff1a; 菜鸟教程 - Python3 列表 6.1 删除列表元素 >>> list [Google, Runoob, 1997, 2000]…...

LeetCode-56-合并区间

题目描述&#xff1a; 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 可以使用 LinkedList&#xff0c;…...

Git gui教程---番外篇 gitignore 的文件使用

想说的 .gitignore 的文件一般大型的编译器带git的都会生成&#xff0c;他可以将你不想提交的文件在git下忽略掉&#xff0c;你应该不想将一大堆编译生成的过程文件&#xff0c;还有一些贼大的文件提交上git的。 凡是都有例外&#xff0c;一些冥顽不灵的编辑器&#xff0c;只能…...

javaee spring 用注解的方式实现ioc

spring 用注解的方式实现ioc spring核心依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…...

Linux基础(二)

这里写目录标题 一、网络管理1- 网络状态查看1.1 net-tools1.2 iproute2 2- 网络故障排除 &#xff01;step1:检测当前主机和目标主机是否畅通 [ping]step2:检测网络质量,追踪路由 [traceroute]step3:检测网络质量,检查是否有数据包丢失 [mrt]step4: 检查端口是否畅通 [telnet]…...

155. 最小栈(中等系列)

设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。 int…...

用python从零开始做一个最简单的小说爬虫带GUI界面(3/3)

目录 上一章内容 前言 出现的一些问题 requests包爬取小说的不便之处 利用aiohttp包来异步爬取小说 介绍 代码 main.py test_1.py test_3.py 代码大致讲解 注意 系列总结 上一章内容 用python从零开始做一个最简单的小说爬虫带GUI界面&#xff08;2/3&#xff09;_…...

SpringBoot+Vue如何写一个HelloWorld

一、SpringBoot介绍 Spring Boot是一个用于创建独立且可执行的Spring应用程序的框架。它简化了基于Spring框架的应用程序的开发过程&#xff0c;并提供了一种快速和简便的方式来构建Java应用程序。 Spring Boot提供了自动配置机制&#xff0c;通过引入适当的依赖项&#xff0…...

深度强化学习。介绍。深度 Q 网络 (DQN) 算法

马库斯布赫霍尔茨 一. 引言 深度强化学习的起源是纯粹的强化学习&#xff0c;其中问题通常被框定为马尔可夫决策过程&#xff08;MDP&#xff09;。MDP 由一组状态 S 和操作 A 组成。状态之间的转换使用转移概率 P、奖励 R 和贴现因子 gamma 执行。概率转换P&#xff08;系统动…...

【C++随笔02】左值和右值

【C随笔02】左值和右值 一、左值和右值1、字面理解——左值、右值2、字面理解的问题3、左值、右值4、左值的特征5、 右值的特征6、x和x是左值还是右值7、复合例子8、通常字面量都是一个右值&#xff0c;除字符串字面量以外&#xff1a; 二、左值引用和右值引用三、左值引用1、常…...

几个nlp的小任务(多选问答)

@TOC 安装库 多选问答介绍 定义参数、导入加载函数 缓存数据集 随机选择一些数据展示 进行数据预处理部分(tokenizer) 调用t...

TI C2000 DSP入门新姿势:Simulink硬件支持包安装与CCS v10.1.0联调实战记录

TI C2000 DSP开发环境搭建&#xff1a;从Simulink支持包到CCS联调全指南 当第一次打开Matlab准备为C2000 DSP开发算法时&#xff0c;很多人会惊讶地发现&#xff1a;明明安装了CCS和Matlab&#xff0c;却无法直接在Simulink中找到C2000的硬件支持。这不是个例——根据TI官方论坛…...

品牌AI印相失效90%源于这7个参数误设,可口可乐级商业输出必须校准的4项色彩/构图硬指标

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney Coca Cola印相失效的底层归因诊断 Midjourney v6 及后续版本中&#xff0c;针对品牌标识&#xff08;如 Coca-Cola 经典红白波浪字体与动态弧线&#xff09;的“印相”&#xff08;prompt i…...

从恒流源到差动放大:铂电阻测温电路的优化路径与实践

1. 铂电阻测温基础与设计挑战 铂电阻作为工业测温的中坚力量&#xff0c;其核心优势在于稳定的物理特性。PT100在0℃时标称电阻为100Ω&#xff0c;温度系数为0.385Ω/℃。这个看似简单的参数背后&#xff0c;却隐藏着电路设计的三大矛盾&#xff1a;灵敏度与噪声的博弈、线性度…...

AI系统可观测性:从数据漂移到模型性能的全面监控实践

1. 项目概述&#xff1a;为什么AI系统需要独立的可观测性体系&#xff1f;最近几年&#xff0c;我参与和主导了不下十个所谓的“AI驱动”或“智能”系统的构建与运维。从最初的兴奋到后来的头疼&#xff0c;一个深刻的体会是&#xff1a;传统的监控和日志体系&#xff0c;在AI系…...

AI自主报告正常胸片:技术原理、临床价值与英国NHS实践挑战

1. 项目概述&#xff1a;当AI开始“读”胸片作为一名在医学影像和人工智能交叉领域摸爬滚打了十多年的从业者&#xff0c;我亲眼见证了AI从实验室里的新奇玩具&#xff0c;逐渐成长为临床医生案头一个值得信赖的“第二双眼睛”。最近&#xff0c;一个特别的应用场景正在全球范围…...

别再死记硬背截止、放大、饱和了!用Arduino+面包板,5分钟直观演示三极管三种工作状态

用Arduino实战破解三极管工作状态的秘密 记得第一次学三极管时&#xff0c;盯着课本上那些截止区、放大区、饱和区的曲线图&#xff0c;我完全无法理解这些抽象概念和实际电路有什么关系。直到有一天&#xff0c;我在实验室里用Arduino和几个简单元件搭建了一个测试电路&#x…...

AI Agent技能生成器:从零创建精准高效的SKILL.md文件

1. 项目概述&#xff1a;一个为AI Agent生成“技能说明书”的元技能如果你和我一样&#xff0c;经常在Claude Code、Cursor或者Codex这类AI编程助手工具里折腾&#xff0c;想让它帮你处理一些特定的、重复性的开发任务&#xff0c;那你肯定对“技能”&#xff08;Skill&#xf…...

基于Claude的智能代码脚手架:提升AI编程协作效率的工程实践

1. 项目概述&#xff1a;一个为Claude设计的代码脚手架如果你和我一样&#xff0c;经常与Anthropic的Claude模型打交道&#xff0c;尤其是在代码生成、项目初始化这类场景&#xff0c;那你一定体会过那种“重复造轮子”的疲惫感。每次开启一个新项目&#xff0c;无论是简单的脚…...

电力系统网络安全:从风险认知到威胁建模的实战指南

1. 从日常运维到风险认知&#xff1a;重新审视大容量电力系统的安全基线在能源行业干了十几年&#xff0c;我见过太多同行把大容量电力系统&#xff08;Bulk Energy System, BES&#xff09;的运维简化为“确保别停电”。日常的告警处理、设备巡检、工单流转构成了工作的全部叙…...

CQDs-PEG/Biotin/@SiO2/Polymer,PEG修饰碳量子点的特性

中英文名称&#xff1a; CQDs-PEG&#xff0c;PEG修饰碳量子点 CQDs-Biotin&#xff0c;生物素偶联碳量子点 CQDsSiO2&#xff0c;二氧化硅包覆碳量子点 CQDsPolymer&#xff0c;聚合物包覆碳量子点 碳量子点&#xff08;Carbon Quantum Dots, CQDs&#xff09;作为一类新型零维…...