有什么线索可以找到样式替代吗?
对于 Civil 3D,我想覆盖纵断面图(纵断面图部分)中管道的样式...任何人都知道这是否可能(在.Net中我的意思是...我知道我可以通过个人资料视图选项做到这一点)?查看个人资料视图成员,我不确定它是否相关...我认为如果我得到这个部分,那么它会改变风格,而不仅仅是设置一个覆盖。 我认为覆盖可能是某个地方的图形项目,但我不确定在哪里。
**** Hidden Message ***** 这是ProfileView的GrapghOverrides的成员。您需要循环遍历覆盖以查找配置文件ObjectId或名称(部件的名称)。在覆盖属性中,Draw、OverrideStyleId、OverrideStyleName和UseOverder用于确定部件的显示。
这是一个被覆盖的管道:
感谢这个! 发现在绘制之前调整此选项更容易。lol
Autodesk.Civil.Settings。设置scmdaddnetworkpartstoprof
如果我真的有雄心壮志,我会深入研究图形覆盖<你用来显示信息的那个窥探者是谁? 不,我只是在代码中设置了一个断点,在我打开ProfileView实体进行阅读后立即停止。截图来自VS2013中的Locals窗口 天哪!真的需要更好的学习visual studio 所以我才告诉你先学C#和VS的基础,再学AutoCAD具体的。
你说得对。我倾向于使用C#快速版,但看起来我没有利用VS真正可以做的事情。
获取图形覆盖实际上非常困难。我遍历了配置文件视图部分和图形覆盖,但似乎没有办法合并两者(具有样式覆盖的部分),但我不太容易看到。如果你知道我想如何得到你的输入。 访客,c#Express运行良好,尽管2013和2015社区版功能更强,但仍然免费
获取图形覆盖实际上非常简单。然而,我在向您展示如何设置覆盖的快速测试中发现,API被破坏了……传递StyleName或StyleId都会引发未处理的异常,因为API只需要一个ProfileStyle ObjectId或名称
因此,我测试的代码如下:
使用(Transaction tr=HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction())
{
var pv=(ProfileView)tr.GetObject(entRes.ObjectId,OpenMode.ForRead)
var partnametoverride=“管道-(1)”
var styleId=CivilApplication.ActiveDocument.Styles。管道样式[“管道交叉管道(卫生)”]
foreach(pv.GraphOverrides中的var overide)
{
如果(overide.ProfileName==partnametoverride)
{
overide。OverrideStyleId=styleId
中断
}
}
tr.Commit()
}
我将向ADN支持部门发出一个关于异常的查询。。。
页:
[1]
2