乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 118|回复: 6

如何直接访问 Civil 3D 装配体对象?

[复制链接]

5

主题

9

帖子

1

银币

初来乍到

Rank: 1

铜币
29
发表于 2018-3-21 07:26:17 | 显示全部楼层 |阅读模式
嗨,所有
我正在生成一个自定义添加,该附加组件要求我访问存储在Civil 3D组件中的数据/变量。
该代码适用于从“从实体中提取走廊”工具生成的3D实体。
我知道我希望访问的程序集的名称,因为它在提取工具应用于 3D 实体的属性集中提供。
我已经编写了代码,以从属性集中获取程序集的名称。现在我有了这个,我如何掌握程序集对象本身?(我想我需要一个GetAssemblyFromName函数!
谢谢

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2018-3-21 11:48:11 | 显示全部楼层
您需要遍历道路基线,然后遍历基线区域。每个区域都有AssemblyId属性,获取该对象并比较名称。伪代码:    foreach(走廊中的var基线,基线)。
{。
foreach(基线中的变量区域,基线区域)。
{。
var assly =(Assembly)tr,GetObject(区域,AssemblyId,OpenMode。for read);。
如果(assbly,Name == nametolookfor)。
{。
//如果需要道路中装配的实际值,请使用该区域的AppliedAssemblies属性。

回复

使用道具 举报

5

主题

9

帖子

1

银币

初来乍到

Rank: 1

铜币
29
发表于 2018-3-21 11:59:56 | 显示全部楼层
我想我可能不得不这样做。但同样的问题现在也适用于走廊。
要运行代码,我需要运行 tr.getObject 来选择一条走廊。
由于我无法使用任何用户输入(即在屏幕上选择或在命令行中键入),如何选择正确的走廊?
我需要的走廊名称存储在字符串中。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2018-3-21 12:44:40 | 显示全部楼层

var civDoc=CivilApplication.ActiveDocument
使用(Transaction tr=HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction())
{
var corr=(走廊)tr.GetObject(civDoc.CorridorCollection[nameofcrridor],OpenMode.ForRead)
foreach(基线bl在更正基线中)
回复

使用道具 举报

5

主题

9

帖子

1

银币

初来乍到

Rank: 1

铜币
29
发表于 2018-3-22 15:37:57 | 显示全部楼层
这很有效,我认为我错过了民用文档部分。
我想我试图从标准AutoCAD Document对象访问CorridorCollection(和AssemblyCollection),但显然一无所获。
现在知道了这一点,我确实觉得很奇怪,我可以使用civDoc.AssemblyCollection[nameOfAssembly]直接访问一个汇编对象,但一旦我有了它,该对象似乎无法查看和访问附加到它的子组件?正如Jeff_M上面所说,我似乎能够获得装配件参数的唯一方法是通过走廊层次结构并提取一个AppliedSubassmble对象。这是真的吗,还是我错过了留档中的其他内容?
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2018-3-22 16:29:16 | 显示全部楼层

是的...
如果您只需要知道装配的部件,而不是它们在道路中的实际计算方式,则装配对象具有“组”属性。部件组合在一起,例如右侧和左侧。每个AssemblyGroup都有GetSubassemblyIds()方法
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2018-3-22 16:32:18 | 显示全部楼层
您是否已将 C3D .NET API 文档添加为书签?如果没有,您应该
http://docs.autodesk.com/CIV3D/2018/ENU/API_Reference_Guide/
您可以用 2016、2017 以及很快的 2019 年替换 2018 年的版本特定文档。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 10:51 , Processed in 0.174369 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表