添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
直爽的抽屉  ·  Is there any node ...·  1 周前    · 
果断的甘蔗  ·  Unix-style pipelining ...·  昨天    · 
率性的红酒  ·  Creating a Child ...·  昨天    · 
谈吐大方的楼房  ·  白马篇 - 唐人诗词网·  10 月前    · 
稳重的小马驹  ·  使用 Performance ...·  1 年前    · 
冷静的火车  ·  NIPS 2018论文解读 | ...·  1 年前    · 

Thought 1: You could try using a number of nodes to get the pipe coordinates, part, size, etc…delete the original pipe, then create two identical pipes in its place. A bit involved, but seems possible.

Thought 2: You could try inserting a null structure at the break-point to split the pipe into two, then immediatly delete the null…not sure if a node exists to insert a structure midway on a pipe in the same way you can when editing a pipe network manually in Civil 3D…so not sure how viable this is…maybe a python thing??

Broadly speaking, I don’t think you can simply break a pipe manually in Civil 3D like you can a polyline. So, you would need to think through how you would do it in the program, then try and duplicate that workflow in Dynamo. Most things in Dynamo for Civil 3D access the API and execute existing operations…breaking a pipe would be an enteirly new operation and not found in the API…I beleive, but I could be wrong.

JPhil:

Thought 1: You could try using a number of nodes to get the pipe coordinates, part, size, etc…delete the original pipe, then create two identical pipes in its place. A bit involved, but seems possible.

I’d go with a modification of this, similar to how Revit implementations are done.

  • Get the existing pipe’s start, mid, end, end connected structure.
  • Set the current pipe’s location to the start end mid point.
  • Draw a new pipe from the midpoint to the previous end.
  • Connect the new pipe to the midpoint and the structure.
  • By keeping the original pipe you maintain more of the original properties in the current design, which may also be helpful for associating data to the new pipe.

    Ah! In the network class. Why didn’t I think to look there for ran element level modification?

    Seriously though, that one is almost as unintuitive as the Revit API… Sadly I don’t see one in the Civil 3D toolkit. I’ll look at some Python for it tomorrow as it’ll help a current project along.

    with adoc.LockDocument(): with adoc.Database as db: with db.TransactionManager.StartTransaction() as t: pipe = t.GetObject(pipetobreak.InternalObjectId,OpenMode.ForWrite) networkid = pipe.NetworkId network = t.GetObject(networkid, OpenMode.ForWrite) newid = ObjectId() network.BreakPipe(pipetobreak.InternalObjectId, point3d, structure_at_break.InternalObjectId, newid) except: err.append(traceback.format_exc()) t.Commit() # Assign your output to the OUT variable. if len(err) > 0: OUT = err else: OUT = None

    However: If the structure and/or breakpoint is not on the pipe, the nearest point on the pipe will be used and the stucture is moved to this break point. I’m not sure whether you want this to happen.