How is this object selection methods used? The input of “type” is a string. Example: If I want to select all pipe network structures, would I just input a string “Structure”? Then what is the “block” input for?
Do you mean the “Object Types” node? I couldn’t find an “Element Type” node.
So this means that the selection node “All Object of Type” cannot be used for objects that are not in the pre-defined list of the “Object Types” node?
What is the “block” input for?
Sorry, I didn’t realize this was for Civil3D.
Assuming that Object Types goes with All Objects of Type (which it seems like it does) then yes, you are likely limited to what’s in the dropdown.
Thanks Nick. I should have been more clear. If I could figure out what the block input is for, then I could test to see if this works with all object types by using a string.
What does the node description say?
Very little. “Select all objects of type.”
And I don’t see it in the Dynamo Dictionary.
@keith.sowinski the block input is to tell the underneath AutoCAD API in which drawing it has to look for those object types. A block could be an entire DWG Model Space. In this implementation of Dynamo for Civil 3D we don’t have access to multiple DWGs so the block really means the Current Document > Model Space.
As you already understood, not all the object types defined in AutoCAD and Civil 3D have been wrapped into a dedicated Dynamo object in the current release, the list will grow eventually.
Passing a string value like “Structure” will not produce the result you are looking for.
Nevertheless, this can be achieved via Python today, if you look in the previous posts on the forum you will find something similar for Feature Lines that should give you an idea of how to do it LINK.
I’m working with a couple of colleagues on a Dynamo package to support among other things Pipe Networks workflow to leverage visual programming and expand what you can do with Dynamo for Civil 3D out of the box.
Could you be more specific on what you are trying to accomplish? Maybe I can help.
Thank you Paolo. I’m not trying to accomplish anything in particular with this node. I am new to Dynamo and exploring how I can use if for Civil 3D. Just checking out the various nodes and understanding how they work.
Since you bring up the subject of Python. Could I/How could I add a python script in dynamo to compute station and offset with northing, easting, alignment name inputs? I could use something like this to write that information to a property set.
@keith.sowinski please have a look at the file attached.
I had a chance to try this out. I wrote a dynamo script that selects all objects with a certain property set property called “selector”. Just a way to filter objects. The property set has northing, easting, and alignment name in it. I tried plugging in the python script that you provided, so I could populate the station and offset properties in the property set. Resulted in an error, but I’m not sure what it means. “Warning: Internal error, please report: Dereferencing a non-pointer.”
I don’t have the beta installed at the moment and I cannot test your graph, can you expand the preview of the inputs to the Python Script? I assume they are lists, the code I wrote deals with single values, in that case it needs to be tweaked.
It would help to see the data structure entering in the node though to be sure.
I appreciate your help with this.
They are lists. There are 4 objects in this case. The reference alignment name is “1” for all objects in this case, but there could easily be different reference alignments for different objects.
Thanks, try edit the Python Script as per the image below after the definition of the function (around line 95 so to speak)
Thanks Paolo! This works great.
One issue this still has is when the coordinate is not within the alignment range. This results in an error. Would like it to return an “out of range” string in that case.