Hallo an Alle,
eine Frage an die Profis. Ich möchte Blöcke umbenennen.
Das können aber auch XREFs sein. Gibt es einen einfachen Weg die davon abhängigen Layer auch um zu benennen? Wenn man das ganz regulär im Programm macht, dann schreibt Auto-Cad, "Vorsicht! "Architektur22" ist ein extern referenzierter Block.
Wird er umbenannt, werden auch die davon abhängigen Symbole umbenannt." Dann werden die Layer und andere Dinge auf den neuen Blocknamen geändert. Kann ich das mit vb.net auch irgendwie erreichen?
Oder muß ich alles "manuell" umbenennen?
Hatte das Problem schon mal jemand?
Wäre schön wenn jemand ne einfache Lösung wüsste.
Unten meine Sub. Vielleich wird damit das Problem ein bisschen deutlicher
Gruß Theo
Public Sub ChangeBlockname(ID As ObjectId, value As String, ByRef Blockname As String)
Dim MyEntity As Entity
Dim myblockref As BlockReference
Dim myblockdef As BlockTableRecord
Using myTrans As Transaction = MyDB.TransactionManager.StartTransaction()
MyEntity = myTrans.GetObject(ID, OpenMode.ForWrite)
myblockref = MyEntity
myblockdef = myTrans.GetObject(myblockref.DynamicBlockTableRecord, OpenMode.ForWrite)
Try
If myblockdef.IsFromExternalReference Or myblockdef.IsFromOverlayReference Then
myblockdef.Name = value
Blockname = value
'hier müssten jetzt die Layer umbenannt werden!!!
Else
myblockdef.Name = value
Blockname = value
End If
Catch
MsgBox("Name ist schon vorhanden!", MsgBoxStyle.Critical)
End Try
myTrans.Commit()
End Using
[Diese Nachricht wurde von Theo37 am 20. Apr. 2017 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP