当前位置:首页>Excel>Excel构件ID定位

Excel构件ID定位

  • 2026-05-16 18:10:14
Excel构件ID定位

分类:数据导入导出

📋 功能简介

导入一列 Excel 的构件 ID,过滤无效 ID 并生成可点击的 ID 列表;点击后自动框选构件并生成局部三维视图。功能灵感来源于 Navisworks 导出的碰撞报告转换成 Excel,然后导入 Revit 检查碰撞位置。系统会自动验证 ID 有效性,记录上次查看的序号,并创建带有剖面框的三维视图以快速定位构件。

🎯 适用场景

  • Navisworks碰撞报告快速定位
    :从 Navisworks 导出碰撞检测报告(包含冲突构件的 ElementId),转换为 Excel 格式后导入 Revit,逐个点击查看碰撞位置,大幅提高碰撞审查效率。
  • 问题构件批量核查
    :在模型审查过程中,记录下存在问题的构件 ID 列表(如不符合规范的构件、需要修改的构件),通过此功能快速定位到每个问题构件,逐一检查和修改。
  • 多专业协调会议辅助
    :在 BIM 协调会议上,需要准备一系列需要讨论的构件清单,导入 ID 列表后可快速切换到每个构件的局部三维视图,便于团队聚焦讨论具体问题。
  • 施工交底材料准备
    :将施工过程中发现的问题构件 ID 整理成 Excel,导入后可快速生成每个问题的局部三维截图,用于制作施工交底文档或整改通知单。

📝 操作步骤

第一步:启动功能并打开对话框

  1. 点击"Excel构件ID定位"命令。
  2. 系统弹出 MainWindow 对话框,显示 MainWindowViewModel 界面。
  3. 界面包含以下元素:
    • 序号(Index):Excel中的行号。
    • ID:构件的 ElementId 字符串。
    • 项目名称:构件的名称(可选)。
    • Excel文件路径
      :显示当前选择的 Excel 文件路径。
    • 上次记录序号
      :显示上次查看该 Excel 文件时记录的序号(若存在)。
    • 加载Excel按钮
      :点击后选择并加载 Excel 文件。
    • ID列表表格
      :显示有效的构件 ID 列表,包含三列:
    • 创建局部三维框按钮
      :选中列表中的 ID 后,点击此按钮生成局部三维视图。

第二步:选择并加载Excel文件

  1. 点击"加载Excel"按钮。
  2. 系统弹出文件选择对话框:
    • 文件过滤器:FileTools.ExcelFile(仅显示 .xlsx.xls 等 Excel 格式文件)。
    • 提示文字:"请选择excel文件且必须包含列:ID"。
  3. 浏览并选择包含构件 ID 的 Excel 文件:
    • Excel 文件必须包含名为"ID"的列(大小写敏感)。
    • 可选列:"序号"(Index)、"项目 名称"(Name)。
    • 若缺少"ID"列,MiniExcel 库将无法正确读取数据。
  4. 若用户取消选择,显示气泡提示"已取消",命令终止。
  5. 若用户选择了有效文件,继续执行加载逻辑。

第三步:读取并过滤Excel数据

  1. 保存文件路径:ExcelPath = filename
  2. 触发OnExcelPathChanged事件,加载上次记录的序号:
    var index = ExcelRecordStore.LoadIndex(value);if (index.HasValue){    LastIndexText = $"上次记录序号:{index}";}
    • 使用 MD5 哈希值作为键,避免文件路径过长或特殊字符问题。
    • 若该文件之前已查看过,显示上次查看的序号,便于续接查看。
  3. 使用 MiniExcel 库读取 Excel 数据:
    var rows = MiniExcel.Query<ElementIdItem>(filename).ToList();
    • ElementIdItem
      类定义了三个属性:Index(序号)、Id(ID)、Name(项目名称)。
    • 通过[ExcelColumnName]属性映射 Excel 列名到类属性。
    • 返回所有行的列表。
  4. 记录日志:"读取数据总计:{rows.Count}"。
  5. 若读取到的行数为0,显示气泡提示"未读取到数据",命令终止。
  6. 清空现有的 ID 列表:Items.Clear()
  7. 获取当前文档:var doc = XmlDoc.Doc
  8. 遍历每一行数据,进行有效性过滤:
    foreach (var row in rows){if (row.Id.IsNullOrWhiteSpace())    {continue// 跳过空ID    }if (row.Id.ToElementId().ToElement(doc) isnotnull)    {        Items.Add(row); // ID有效,添加到列表    }else    {        XmlDoc.Logger.Info("跳过异常ID:" + row.Id); // ID无效,记录日志    }}
    • row.Id.ToElementId()
      :将字符串转换为ElementId对象。
    • .ToElement(doc)
      :尝试从文档中获取对应的元素。
    • 若返回非null,说明该 ID 在当前项目中存在且有效。
    • 若返回null,说明该 ID 不存在(可能已被删除、或来自其他项目),跳过该行。
    • 空ID检查
      :若Id字段为空或空白,跳过该行。
    • 有效性验证
    • 日志记录
      :对于无效的 ID,记录到日志中,便于排查问题。
  9. 更新"创建局部三维框"按钮的可用状态:CanCreate = Items.Count > 0
    • 若列表中有有效 ID,按钮可用。
    • 若列表为空,按钮禁用。

第四步:选择要定位的ID

  1. 在 ID 列表表格中,选择一个或多个 ID:
    • 支持单选和多选(按住 Ctrl 或 Shift 键)。
    • 建议一次选择1-5个 ID,以便生成的局部三维视图不会过大。
  2. 选中后,"创建局部三维框"按钮变为可用状态。
  3. 点击"创建局部三维框"按钮,或双击某个 ID 行。

第五步:创建局部三维视图

  1. 检查是否有选中的 ID:if (list == null || list.Count == 0)
    • 若未选择任何 ID,提示"请先选择ID"并返回。
  2. 获取选中的 ID 列表:var temp = list.Cast<ElementIdItem>().ToList()
  3. 构建元素列表:
    List<Element> els = [];var doc = XmlDoc.Doc;foreach (var item in temp){var el = item.Id.ToElementId().ToElement(doc);    els.Add(el);}
    • 将每个 ID 字符串转换为ElementId,再获取对应的Element对象。
    • 由于在加载时已验证过 ID 的有效性,此处理论上不会失败。
  4. 读取并保存上次序号:
    var lastIndex = ExcelRecordStore.LoadIndex(ExcelPath);var index = temp.Max(o => o.Index);ExcelRecordStore.SaveIndex(ExcelPath, index);LastIndexText = $"上次记录序号:{index}";
    • 获取选中 ID 中的最大序号(temp.Max(o => o.Index))。
    • 保存到缓存文件(excel_records.json),下次打开同一 Excel 文件时显示此序号。
    • 更新界面显示的"上次记录序号"文本。
  5. 开启异步任务(XmlDoc.RevitTaskService.RunAsync)执行视图创建和切换。

5.1 创建或复用三维视图

  1. 开启事务(doc.Transaction(t => {...})),事务名称为"局部三维框"。
  2. 调用Create3DSectionBox(doc, els)方法创建局部三维视图:
5.1.1 查找现有视图
  1. 使用过滤器查找名为"构件定位"的三维视图:
    var view = new FilteredElementCollector(doc)    .OfClass(typeof(View3D))    .Cast<View3D>()    .FirstOrDefault(v => !v.IsTemplate && v.Name == "构件定位");
    • !v.IsTemplate
      :排除视图模板。
    • v.Name == "构件定位"
      :查找特定名称的视图。
    • 若找到现有视图,复用该视图;否则创建新视图。
5.1.2 计算包围盒
  1. 收集所有选中元素的包围盒角点:
    var xyzs = new List<XYZ>();foreach (var el in elements){var boundingBox = el.get_BoundingBox(null);    xyzs.Add(boundingBox.Min);    xyzs.Add(boundingBox.Max);}
    • get_BoundingBox(null)
      :获取元素在当前视图中的包围盒。
    • 收集每个元素的 Min 和 Max 点。
  2. 若没有角点(xyzs.Count == 0),返回现有视图(不更新)。
  3. 计算所有元素的总体包围盒:
    var min = new XYZ(xyzs.Min(p => p.X), xyzs.Min(p => p.Y), xyzs.Min(p => p.Z));var max = new XYZ(xyzs.Max(p => p.X), xyzs.Max(p => p.Y), xyzs.Max(p => p.Z));
    • min
      :所有角点中的最小 X、Y、Z 值。
    • max
      :所有角点中的最大 X、Y、Z 值。
5.1.3 创建新视图(若不存在)
  1. view == null,创建新的三维视图:
    view = doc.Create3DView("构件定位");
    • 使用Create3DView方法创建默认方向的三维视图。
    • 视图名称固定为"构件定位"。
5.1.4 设置剖面框
  1. 计算偏移量:var of = 500d.MMToFeet()(500毫米转换为英尺)。
  2. 创建偏移向量:XYZ offset = new XYZ(of, of, of)
  3. 扩展包围盒:
    BoundingBoxXYZ box = new BoundingBoxXYZ     Min = min - offset,     Max = max + offset };
    • 在 Min 方向减去偏移,Max 方向加上偏移。
    • 确保剖面框比元素包围盒大500mm,避免元素被裁剪。
  4. 应用剖面框到视图:
    view.SetSectionBox(box);view.IsSectionBoxActive = true;
    • SetSectionBox
      :设置视图的剖面框。
    • IsSectionBoxActive = true
      :激活剖面框,视图仅显示框内的内容。
  5. 返回创建的视图对象。

5.2 切换视图并选中元素

  1. 事务提交,视图创建完成。
  2. 若视图创建成功(view3D != null),切换到该视图:
    XmlDoc.UIdoc.ActiveView = view3D;
  3. 获取当前活动的 UIView:var uiview = XmlDoc.UIdoc.ActiveUIView()
  4. 缩放视图以适应内容:uiview.ZoomToFit()
    • 自动调整视图比例,使剖面框内的所有内容可见。
  5. 选中所有相关元素:XmlDoc.UIdoc.SetElementIds(els)
    • 在视图中高亮显示选中的元素,便于识别。
  6. 异步任务完成,用户可以看到局部三维视图和选中的构件。

第六步:查看结果并继续操作

  1. 当前视图已切换到"构件定位"三维视图,显示选中构件的局部区域。
  2. 选中的构件已高亮显示,便于识别。
  3. 用户可:
    • 旋转、平移、缩放视图,仔细观察构件细节。
    • 关闭对话框,继续在 Revit 中进行其他操作。
    • 重新打开对话框,选择其他 ID,再次生成局部视图。
  4. 若需查看下一个构件,在 Excel 中记下当前序号,下次可选择从该序号之后的 ID 开始。

💡 使用技巧

  1. 准备标准的Excel格式
    :确保 Excel 文件包含名为"ID"的列(大小写敏感),这是系统识别构件 ID 的关键。可选添加"序号"和"项目 名称"列,便于追踪和识别。
  2. 利用序号记录功能
    :系统会自动记录每次查看的最大序号,下次打开同一 Excel 文件时会显示"上次记录序号",便于从上次中断的位置继续查看,避免重复检查。
  3. 批量选择提高效率
    :虽然可以一次选择多个 ID,但建议选择1-5个相关的 ID(如同一区域的构件),这样生成的局部三维视图更聚焦,便于观察细节。
  4. 理解剖面框的作用
    :生成的视图会激活剖面框(SectionBox),仅显示框内的内容。若需查看更大范围,可手动调整剖面框的大小或关闭剖面框(在视图属性中设置IsSectionBoxActive = false)。
  5. 500mm偏移量的意义
    :系统会在元素包围盒的基础上向外扩展500mm,确保构件不会被裁剪。若构件较大或需要更多上下文,可在源码中调整of = 500d.MMToFeet()的值。
  6. 无效ID自动过滤
    :系统会自动跳过空 ID 和不存在的 ID(如已删除的构件、其他项目的 ID),并在日志中记录。查看日志可了解哪些 ID 被跳过及原因。
  7. 复用"构件定位"视图
    :系统会查找并复用名为"构件定位"的现有视图,避免创建大量重复视图。若需重置视图,可手动删除该视图,下次执行时会创建新的。
  8. 配合Navisworks工作流
    :从 Navisworks 导出碰撞报告时,确保包含 ElementId 列,然后在 Excel 中整理为"ID"列格式,即可直接导入 Revit 定位碰撞位置。
  9. 缓存文件位置
    :上次记录的序号保存在缓存目录的excel_records.json文件中。若需清除记录,可手动删除该文件,或使用不同的 Excel 文件名。
  10. 异步执行的流畅性
    :视图创建和切换在异步任务中执行,不会阻塞 UI,用户可以流畅地连续查看多个构件,无需等待每次操作完成。

⚠️ 注意事项

  1. Excel列名必须准确
    :系统通过[ExcelColumnName("ID")]属性映射列名,Excel 中的列名必须精确匹配"ID"(大小写敏感)。若列名为"id"、"Id"或其他变体,将无法读取数据。
  2. 仅验证ID存在性
    :系统仅检查 ID 是否对应当前项目中的元素,不验证元素的类型、类别或状态。若 ID 对应的是已隐藏、已删除或在链接模型中的元素,可能无法正确定位。
  3. MD5哈希的文件识别
    :系统使用 Excel 文件路径的 MD5 哈希值作为缓存键,而非文件路径本身。这意味着即使文件移动到其他位置,只要文件名和内容不变,仍能识别为同一文件。但若文件内容改变而路径不变,仍会使用旧的缓存记录。
  4. 视图名称固定
    :创建的三维视图名称固定为"构件定位",若项目中已存在同名视图,会被复用并更新剖面框。若需保留多个不同的定位视图,需在每次执行前手动重命名现有视图。
  5. 剖面框的激活状态
    :生成的视图会激活剖面框(IsSectionBoxActive = true),仅显示框内内容。若需查看完整模型,需手动关闭剖面框或调整其范围。
  6. 500mm偏移可能不足
    :对于大型构件(如大型设备、长梁),500mm 的偏移量可能不足以完全显示构件及其上下文。可根据实际需求修改源码中的偏移量。
  7. 异步任务的时序
    :视图切换和元素选中在异步任务中执行,若用户在任务完成前关闭对话框或切换视图,可能导致操作不完整。建议等待视图完全加载后再进行其他操作。
  8. 不支持链接模型的ID
    :系统仅从当前文档(XmlDoc.Doc)中查找元素,不包括链接模型中的元素。若 Excel 中包含链接模型的 ID,将被视为无效 ID 并跳过。
  9. Excel文件格式限制
    :使用 MiniExcel 库读取 Excel,支持 .xlsx 和 .xls 格式,但不支持加密的 Excel 文件或包含宏的文件。若读取失败,请检查文件格式是否正确。
  10. 多选ID的包围盒合并
    :当选择多个 ID 时,系统会计算所有元素的总体包围盒。若选择的元素分布在不同区域,生成的剖面框会非常大,可能失去"局部"的意义。建议仅选择空间上相邻的元素。
  11. 缓存文件的持久化
    excel_records.json文件保存在缓存目录中,即使关闭 Revit 也会保留。若需清除所有记录,可手动删除该文件,但会影响所有 Excel 文件的序号记录。
  12. 无撤销机制
    :视图创建和切换操作不在事务中(仅视图内部的剖面框设置在事务中),无法通过 Ctrl+Z 撤销。若创建了不需要的视图,需手动删除。

🔗 相关功能

  • 桩基附着面
    :将桩基础构件附着到选定的面(如地形面),适用于场地建模和基础设计。
  • 族附着选择面
    :将基于点的族实例附着到选定的面,通过垂直投影自动调整 Z 轴位置。
  • Excel数据导入导出
    :Revit 原生的 Excel 导入导出功能,可用于参数值的批量读写,与本功能的 ID 定位互补。
  • 视图管理工具
    :Revit 原生的视图创建、复制和管理功能,可手动创建类似的局部三维视图,但需要更多的手动操作。

❓ 常见问题

Q1:为什么加载Excel后列表为空?A1:可能原因包括:①Excel 文件中没有名为"ID"的列(大小写敏感),MiniExcel 无法映射数据;②所有 ID 都是空的或无效的(不对应当前项目中的元素);③Excel 文件格式不正确(如加密文件、损坏文件),MiniExcel 读取失败;④Excel 文件路径包含特殊字符,导致读取错误。请检查 Excel 文件的列名是否正确,ID 是否有效,并查看输出窗口的日志确认具体原因。

Q2:为什么某些ID被跳过?A2:ID 被跳过的原因包括:①ID 字段为空或空白(IsNullOrWhiteSpace检查);②ID 字符串无法转换为有效的ElementId(格式错误);③ID 对应的元素在当前项目中不存在(可能已被删除、或来自其他项目)。系统会在日志中记录"跳过异常ID:{ID}",可查看日志了解具体哪些 ID 被跳过。

Q3:能否自定义视图名称而不是固定的"构件定位"?A3:当前版本视图名称硬编码为"构件定位"。若需自定义名称,需修改源码中的Create3DSectionBox方法,将"构件定位"替换为用户输入的名称,或通过 UI 让用户指定名称。但需注意,若每次使用不同名称,会创建大量视图,可能影响项目性能。

Q4:生成的局部三维视图为什么看不到构件?A4:可能原因包括:①构件位于剖面框之外,500mm 的偏移量不足以包含构件;②构件被视图过滤器隐藏,需在视图可见性/图形替换(VV/VG)中检查;③构件在链接模型中,而剖面框仅针对当前文档的元素计算;④视图的裁剪区域或远裁剪平面排除了构件。解决方法:①手动调整剖面框大小(在视图属性中编辑 SectionBox);②检查视图可见性设置;③确保构件在当前项目中而非链接模型中。

Q5:上次记录序号是如何计算的?有什么作用?A5:系统会记录每次查看时选中 ID 的最大序号(temp.Max(o => o.Index)),并保存到缓存文件(excel_records.json)。下次打开同一 Excel 文件时,会显示"上次记录序号:{index}",帮助用户知道已经查看到哪个位置,避免重复检查或遗漏。这对于处理大量 ID(如数百个碰撞点)特别有用,可以分多次查看,每次从上次中断的位置继续。

Q6:能否一次性查看所有ID而不是逐个选择?A6:可以。在 ID 列表表格中,按 Ctrl+A 全选所有 ID,然后点击"创建局部三维框"。系统会计算所有元素的总体包围盒,创建一个包含所有构件的局部视图。但需注意,若元素分布在不同区域,剖面框会非常大,可能失去"局部"的意义,且视图可能过于拥挤,不利于观察细节。建议分批查看,每次选择空间上相邻的构件。

Q7:缓存文件存储在哪里?如何清除记录?A7:缓存文件存储在用户缓存目录的excel_records.json文件中,路径通过广州明周科技有限公司.FilePath.EnsureCacheDirectoryExists()获取(通常是%APPDATA%%LOCALAPPDATA%下的某个子目录)。若需清除所有记录,可手动删除该文件,下次打开 Excel 文件时会显示"上次记录序号:无"。若仅想清除某个文件的记录,需编辑 JSON 文件,删除对应的 MD5 键值对。

Q8:此功能是否适用于链接模型中的构件ID?A8:不适用。系统在验证 ID 时使用row.Id.ToElementId().ToElement(doc),其中doc是当前文档(XmlDoc.Doc),不包括链接模型。若 Excel 中包含链接模型的 ID,会被视为无效 ID 并跳过。若需定位链接模型中的构件,需先在链接模型中查找对应的 ElementId,或在当前项目中创建与链接构件关联的元素(如标记、注释),然后定位这些关联元素。

推荐阅读

功能商店功能Gif动图展示

PS:都看到这里,来个点赞、在看、关注吧。您的支持是我们坚持的最大动力!欢迎多多关注公众号「Revit二次开发教程加入交流群,交个朋友吧,一起学习,一起进步!

更多内容请评论点赞转发!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-19 17:49:07 HTTP/2.0 GET : https://h.sjds.net/a/507899.html
  2. 运行时间 : 0.231696s [ 吞吐率:4.32req/s ] 内存消耗:4,414.39kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=492fda31ac6556c729effbb3cf2947ea
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000964s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001297s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001810s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000513s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001147s ]
  6. SELECT * FROM `set` [ RunTime:0.001483s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001193s ]
  8. SELECT * FROM `article` WHERE `id` = 507899 LIMIT 1 [ RunTime:0.015154s ]
  9. UPDATE `article` SET `lasttime` = 1779184147 WHERE `id` = 507899 [ RunTime:0.008209s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000655s ]
  11. SELECT * FROM `article` WHERE `id` < 507899 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001001s ]
  12. SELECT * FROM `article` WHERE `id` > 507899 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001689s ]
  13. SELECT * FROM `article` WHERE `id` < 507899 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.042595s ]
  14. SELECT * FROM `article` WHERE `id` < 507899 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003785s ]
  15. SELECT * FROM `article` WHERE `id` < 507899 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001562s ]
0.234829s