treaves04 发表于 2022-7-6 22:14:11

访问扩展数据???

我需要访问一些扩展数据,以便按样式名称过滤我的MEP电气设备。我将样式名称添加为特性集数据。我需要按样式名过滤,并计算有多少个,然后将该数字放入变量中,然后我可以使用表中的字段访问它。我只是不知道如何访问这些信息,因为扩展数据中没有列出这些信息。
 
我知道我可以使用时间表,但我也需要按层过滤,因为我们在一个文件中有多个房屋正面。如果我使用时间表,它会给出整个文件中的总数。
 
提前感谢;)

tzframpton 发表于 2022-7-6 22:18:21

我不是程序员,但IIRC AutoCAD Architecture和AutoCAD MEP对象使用。NET编程语言。这可能是错误的论坛,因为我认为使用AutoLISP和Visual LISP很难获取有关AEC对象的信息。您可以使用“报告发布”选项通知主持人将其移动到。NET自定义区域。

BIGAL 发表于 2022-7-6 22:23:43

你可以通过VL进入civ3d AEC数据,最大的问题是你必须知道保存信息的变量名,这通常不是它的名称。
 
你应该能够获得mep数据,但同样你需要知道你在寻找什么。
 




this just opens up the AEC database and is version dependant
(if ((lambda (vrsn)
       (cond
      ((vl-string-search "R17.2" vrsn) (setq appstr "6.0")) ;09
      ((vl-string-search "R18.0" vrsn) (setq appstr "7.0")) ;10
      ((vl-string-search "R18.1" vrsn) (setq appstr "8.0")) ;11
      ((vl-string-search "R18.2" vrsn) (setq appstr "9.0")) ;12 ?
      ((vl-string-search "R19.0" vrsn) (setq appstr "10.0")) ;13
      ((alert "This version of C3D not supported!"))
       )
      )
      (vlax-product-key)
   )                         ; end if condition progn is true
   (progn
       (cond (*AeccDoc*)
         ((setq *AeccDoc*
         (vlax-get
             (cond (*AeccApp*)
               ((setq *AeccApp*
               (vla-getinterfaceobject
                  (cond (*Acad*)
                  ((setq *Acad* (vlax-get-acad-object)))
                  )
                  (strcat "AeccXUiLand.AeccApplication." appstr)
               )
                )
               )
             )
             'ActiveDocument
         )
          )
         )
       ) ; end main cond
   ) ; end progn
) ; end if vsrn


this is an example of opening the surfaces list
(vlax-for j (vlax-get *AeccDoc* 'SurfaceS)
(setq lst (cons (cons (vla-get-name j) j) lst))
)

surface styles
(vlax-for i (vlax-get *AeccDoc* 'SurfaceStyles)
(setq lst (cons (cons (vla-get-name i) i) lst))
)

treaves04 发表于 2022-7-6 22:25:32

谢谢,这比我更接近了一大步。我希望有人也知道这些设备的变量。我将进一步浏览开发人员参考资料,看看能找到什么。

treaves04 发表于 2022-7-6 22:27:16

当我列出对象时,它给出了样式引用名称。list命令是如何获取数据的???

treaves04 发表于 2022-7-6 22:31:47

我在其中一个对象上附加了一个屏幕截图,显示了从list命令返回的内容中包含的全部内容。

BIGAL 发表于 2022-7-6 22:35:29

试试这个,它是dumpit。lsp选择你的对象,它会提供更多细节,它会提供变量名等
 
;;;===================================================================;
;;; DumpIt                                                            ;
;;;-------------------------------------------------------------------;
;;; Dump all methods and properties for selected objects            ;
;;;===================================================================;
(defun C:DumpIt ( / ent)
(while (setq ent (entsel))
   (vlax-Dump-Object
   (vlax-Ename->Vla-Object (car ent))
   )
)
(princ)
)

Tyke 发表于 2022-7-6 22:38:28

当您使用Express工具列出扩展数据时,您能看到所需的信息吗?
 
在VBA中,扩展数据是使用DXF代码附加到对象的,虽然这很简单,但您需要知道扩展数据结构(实际上是它们出现的顺序),或者扩展数据包含一个可用于过滤的描述性部分。DXF代码描述所附信息的类型,字符串、整数、实数等。
 
我在VBA中开发了一个扩展数据查看器,它列出了一个对象上的所有数据,如果可以的话。但请记住,它只是一个观众。

treaves04 发表于 2022-7-6 22:40:19

垃圾桶。lsp成功地将其拔出。我需要的信息列在名称(RO)=下。我附上了一个png,你可以看到。我需要得到列出的字符串。有没有办法自己获取这些数据?还是在调用dumpit函数后需要对其进行过滤?
 
谢谢你的帮助,我开始认为这是一个失败的事业。我花了无数个小时搜索和阅读,试图找到一个解决方案。现在我可以看到隧道尽头有灯光了(我只希望它不是火车)

treaves04 发表于 2022-7-6 22:44:19

在StyleName=
页: [1] 2
查看完整版本: 访问扩展数据???