yucad3d

Host API functions

Every function the host hands a plugin in Yu3dHostApi — 289 in 12 groups, ABI version 2u. Generated from sdk/include/yu3d_plugin.h.

Registration

Called once from yu3d_plugin_register to declare the node types and commands the plugin contributes.

FunctionReturnsPurpose
register_commandvoidregistration (call during yu3d_plugin_register)
register_node_typevoid---- registration (call during yu3d_plugin_register) ----

Module manifest

Declares the plugin as a module the host can list, enable and disable.

FunctionReturnsPurpose
align_set_bondintBond an existing alignment to its parent(s) — turns a plain alignment into a LIVE derived one (offset / curb return / connected). kind_code as in align_kind;…
align_set_geometry_exintSuperset of align_set_geometry that also builds SPIRALS. Each record is 8 doubles {type, x, y, bearing_deg, p0, p1, p2, p3}: type 0 = tangent (p0 = length; p…
corridor_add_baselineintAdd an extra baseline to a multi-baseline corridor, following alignment_uuid (its design profile; flat 0 if none) with one region bound to assembly_uuid

Commands

Rich command registration and the parameter values a generated form hands back.

FunctionReturnsPurpose
args_getdoubleRead a resolved form value by param name inside a run_args callback. Returns fallback if the name is absent. Bool = 0/1; Choice = index.
register_command_exvoid---- rich command registration (see Yu3dCommandDesc) ----

Properties

Editable fields and read-only summaries a node type publishes to the Properties dock.

FunctionReturnsPurpose
plan_set_pick_idvoid---- sub-entity tagging for picking. Call before emitting a part's pickable segments in a plan_render callback; a click then resolves to (node, sub_id) and t…
register_propertyvoid---- register a node type's editable properties (call during yu3d_plugin_register, after register_node_type). props points to an array of n_props descrip…

Document query

Read the document tree during a command. Node handles live only for the duration of the callback.

FunctionReturnsPurpose
doc_current_selectionint---- current selection: writes the selected node's uuid into out (NUL-terminated, truncated to out_len). Returns 1 if something is selected, 0 otherwise (o…
doc_find_nodeYu3dNode*document QUERY. Node handles are valid ONLY for the duration of the command callback; never store them. The const char* returned by node_type/name/uuid point…
doc_rootYu3dNode*---- document QUERY. Node handles are valid ONLY for the duration of the command callback; never store them. The const char* returned by node_type/name/uuid …
node_childYu3dNode*document QUERY. Node handles are valid ONLY for the duration of the command callback; never store them. The const char* returned by node_type/name/uuid point…
node_child_countuint32_tdocument QUERY. Node handles are valid ONLY for the duration of the command callback; never store them. The const char* returned by node_type/name/uuid point…
node_get_propertyintRead a node's current property value (resolves the registered provider). sub_id < 0 = a node-level property; >= 0 = a sub-entity property. Returns 1 on succe…
node_nameconst char*type id
node_parentYu3dNode*document QUERY. Node handles are valid ONLY for the duration of the command callback; never store them. The const char* returned by node_type/name/uuid point…
node_payloadvoid*The opaque payload for ANY plugin-backed node (an ExternNode), null for a core node type. NOTE: the host has no caller identity, so this returns the payload …
node_typeconst char*null at the root
node_uuidconst char*document QUERY. Node handles are valid ONLY for the duration of the command callback; never store them. The const char* returned by node_type/name/uuid point…

Document mutation

Change the document. Every mutation is one undoable edit — the host owns undo, the plugin never does.

FunctionReturnsPurpose
advertise_modulevoid---- module manifest / activation ("sell module combinations") ---- A plugin advertises itself, marks itself active once it has registered its seams, and can…
align_bondintThe DERIVED-alignment bond. Returns 1 and fills the outs when kind != Centerline (a bonded offset / curb-return / connected), else 0. Parent uuids go into th…
align_categoryconst char*document MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
align_createintAlignment authoring. category: "Road" (default), "Rail", "Tunnel", "Bridge", "Misc". align_set_geometry replaces the horizontal with a chained segment list…
align_create_offsetintA true Offset Alignment: per-element parallel of parent_uuid at the signed offset, bonded to it (kind = Offset) so the host can recompute it when the paren…
align_elevation_atintdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
align_evaluateintSample an alignment (node uuid) at station station_m (metres). Writes any non-null out (position, bearing degrees, curvature 1/R). Returns 1 on success, 0 …
align_h_elementintdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
align_h_element_countuint32_tHorizontal geometry as a chained element list. align_h_element writes 9 doubles into out9 (which must hold 9): {type, length, start_x, start_y, start_beari…
align_kindconst char*Alignment ROLE + world, as the .yu3dx "kind"/"category" codes ("Centerline"/"Offset"/"Curb Return"/"Connected"/"Misc" and "Road"/"Rail"/"Tunnel"/"Bridge"/"Mi…
align_set_geometryintdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
align_set_profileintdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
align_station_rangeintThe alignment's [start, end] station in metres. Returns 1 on success.
align_v_pviintdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
align_v_pvi_countuint32_tDesign-profile VPIs. align_v_pvi writes 3 doubles: {station_m, elev_m, curve_len_m}. align_elevation_at gives the design elevation at a station (0 if there i…
assembly_create_presetintProject assembly from a program flow preset label (the Assemblies library names, e.g. "Two-Lane Road", "Rail - Ballasted Single Track").
corridor_baseline_countuint32_tCorridor structure. baseline 0 = the primary; 1..N = bundled extras (e.g. an intersection's curb-return baselines).
corridor_bind_assemblyintdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
corridor_createintCorridor on an alignment (uses its design profile; a road with no profile gets a flat one at 0). Bind a project assembly per region (region_idx 0-based; a fr…
corridor_region_assemblyintThe assembly bound to (baseline, region); writes its uuid, "" if unbound.
corridor_region_countuint32_tdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
doc_add_nodevoid---- document mutation (use from a command). Wraps payload in a node of type_id and adds it under the document root as one undoable edit. The host takes …
doc_add_node_undervoid---- document MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical string…
doc_crs_definitionconst char*Project CRS as a PROJ string ("EPSG:5254"); "" if not georeferenced.
doc_design_speed_kmhdoubledocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
doc_design_standardconst char*Road design rule set code ("AASHTO"/"RAL"/"VSS"/"KGM") + design speed.
doc_ensure_groupvoidFind a direct Group child of parent_uuid named group_name, creating it if absent (NOT a duplicate undo each call — created once). parent null/empty => un…
doc_ground_elevationintGround elevation sampled from the document's surfaces at (x,y). Returns 1 and writes *out_z, or 0 if no surface covers the point.
doc_is_metricintDocument display units: 1 = metric, 0 = imperial. (The model is always SI metres; this is only how the UI formats — useful for a module's own labels.)
doc_load_exchangeintMerge a .yu3dx exchange file INTO the document: its alignments and surfaces are added under root-level "Alignments" / "Surfaces" groups. The existing content…
doc_remove_nodevoiddocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
doc_rename_nodevoiddocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
doc_saveintSave the document as a normal .yu3d file.
doc_save_exchangeintWrite the document's civil content (alignments + surfaces) as a .yu3dx JSON exchange file — the format the Civil 3D bridge plugin reads and writes.
doc_set_propertyvoiddocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
is_module_activeintdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
plan_add_trianglevoidPlan render: a filled triangle (world coords) with RGBA; alpha < 1 blends overlaps so clashes show. Tessellate footprints (pipe bands, discs, pavement) into …
plan_real_widthintNonzero when the canvas wants TRUE 2D footprints (real-width mode) instead of thin sketch symbols — branch your plan renderer on it.
reader_versionuint32_tInside a node type's READ callback: the host document-format version the payload was written with, so a plugin can migrate an older payload (it still reads i…
register_plan_gripsvoidRegister draggable plan grips for a node type (see Yu3dPlanGripFn). Commits ride the sub-entity pos_x/pos_y/rotation properties, so register those too.
register_property_exvoidRegister a node type's editable fields with category / CHOICE options / unit quantity (see Yu3dPropertyDescEx). Supersedes register_property.
register_subentity_propertyvoidRegister a node type's per-sub-entity property page (see Yu3dSubPropListFn).
run_commandintRun a registered command (module or core, e.g. "road.junction.create") headlessly. keys/values are n parallel argument arrays; a value that parses as a numbe…
scene_set_pick_idvoid3D render: tag subsequently-emitted geometry with a sub-entity id, so a click in 3D selects exactly that part (mirrors plan_set_pick_id).
set_module_activevoiddocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
surface_add_breaklineintSurface breaklines — the TIN-forced edges (ridges / toes / pavement edges). add appends one polyline (>= 2 points, n_pts x/y/z triples) and re-enforces it on…
surface_breakline_countuint32_tdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
surface_createintSurface from a point cloud (n_points x/y/z triples, triangulated).
surface_get_breaklineuint32_tdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
surface_get_pointsuint32_tdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
surface_get_trianglesuint32_tdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…
surface_point_countuint32_tSurface point cloud + triangulation (USER points; the internal super-triangle is stripped and indices are 0-based into the point array). get_* copy up to `ma…
surface_triangle_countuint32_tdocument MUTATION. All route through the host's undo stack (each call = one undoable edit), exactly like the Properties dock. uuids are canonical strings. Th…

COGO points

Create and read survey point groups.

FunctionReturnsPurpose
align_build_from_pisintThe Alignment Layout Tools commit — a PI polyline turned into tangents with per-PI fillets (plain arc, or spiral-arc-spiral when there is room), the SAME geo…
align_connectintDerived alignments (the Alignment menu's headless faces). align_connect: the tangent-arc-tangent fillet joining the END of a to the START of b (radius 0 …
align_create_best_fitintalign_create_best_fit — least-squares line-or-arc alignment through n_pts (x, y) pairs (the better RMS wins; the choice and RMS are logged). name NULL/empty …
align_create_offset_exintOffset alignment WITH the cross-fall that derives its profile. align_create_offset above builds the plan geometry and (since it routes through the same engin…
align_duplicateintCOGO point groups (M8 cont.)
align_extract_feature_linesintCOGO point groups (M8 cont.)
align_from_corridor_featureintCOGO point groups (M8 cont.)
align_get_profileintalign_get_profile (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. Reads the design profile's VPIs back -- the read counterpart align_set_profile / _e…
align_mirrorintCOGO point groups (M8 cont.)
align_move_endpointintEndpoint grip drag (geom::refit_alignment_endpoint): move the START (move_start != 0) or END vertex to (x, y). A free move / tangent end re-fits a straight; …
align_rotateintCOGO point groups (M8 cont.)
align_set_arc_radius_by_pointintArc-radius grip (geom::set_arc_radius_by_point): seg_index must be a tangent-arc-tangent fillet; the dragged point scales R about the PI (tangency preserved)…
align_set_elementsintReplace an alignment's horizontal from a semantic ELEMENT list — the AlignmentBuilder reflow (tangent lock ON): positions chain at the previous real end, par…
align_set_profile_exintalign_set_profile with per-VPI curve types (0 parabolic, 1 circular — exact arc; see the v105 kernel). types may be null = all parabolic; unknown values fail…
align_set_station_equationsintCOGO point groups (M8 cont.)
align_station_equations_jsonintCOGO point groups (M8 cont.)
align_translateintAlignment transforms (yucad3d-web#35) -- APPEND-ONLY, probe with YU3D_HOST_HAS. The desktop Modify menu's Move/Rotate/Mirror over the shared geom transforms,…
alignment_reportintalignment_report (yucad3d#64) -- APPEND-ONLY, probe with YU3D_HOST_HAS. The deliverable geometry report for one alignment: element table (type / stations / l…
assembly_add_inputintCOGO point groups (M8 cont.)
assembly_add_linkintCOGO point groups (M8 cont.)
assembly_add_pointintCOGO point groups (M8 cont.)
assembly_add_seededintContainers + path addressing (yucad3d#109 phase 2b). Every node in assembly_flow_json carries a path ("<i>" root index, then ".s<K>.<I>" child-sequence ste…
assembly_add_shapeintCOGO point groups (M8 cont.)
assembly_cant_setintRail cant preview (the desktop Cant tab): pivot -1 left rail / 0 centerline / +1 right rail; rail pivot POINT names; preview delta elevations; gauge (<= 0 = …
assembly_create_emptyint---- assembly FlowGraph authoring (yucad3d#87 batch 5) ------------ APPEND-ONLY -- probe with YU3D_HOST_HAS. The programmatic subset for building an assembly…
assembly_export_pktintCOGO point groups (M8 cont.)
assembly_flow_jsonint---- web Assembly Designer read faces (yucad3d#109) --------------- APPEND-ONLY -- probe with YU3D_HOST_HAS. assembly_flow_json writes the assembly's flow ST…
assembly_import_pktintCivil 3D Subassembly Composer package (.pkt) interchange. assembly_import_pkt converts the package into an Assembly node under parent_uuid (NULL/empty = do…
assembly_input_countuint32_tInput introspection + instance parameters. assembly_input_info's strings point at the host scratch ring -- copy them immediately; out_type is the FlowParam…
assembly_input_infointCOGO point groups (M8 cont.)
assembly_input_removeintCOGO point groups (M8 cont.)
assembly_input_updateintFull input-parameter row edit (the desktop Input Parameters table: Name | Type | Default | Description). type = the FlowParam type (0 Real, 1 Integer, 2 Bool…
assembly_insert_partintCompose a library part (label resolution = assembly_create_preset: the on-disk library first, then the built-in preset catalog) into the assembly at `attach_…
assembly_library_loadintCOGO point groups (M8 cont.)
assembly_library_publishintPublish the assembly's flow into the SHARED program library ("<library dir>/<node name>.yu3dasm") so it appears in the catalogue (assembly_preset_count / par…
assembly_library_saveint.yu3dasm library-file round trip -- the desktop's assembly library format, so a web-designed assembly drops straight into <exe>/assemblies. save exports the …
assembly_move_boxintStore a flowchart-canvas position on the node at path (the box drag commit; assembly_flow_json echoes it as canvas_x/canvas_y — (0,0) is the auto-layout se…
assembly_preset_countuint32_t---- assembly catalogue enumeration ------------------------------- The labels assembly_create_preset accepts, so a client can offer the catalogue instead of…
assembly_preset_infointCOGO point groups (M8 cont.)
assembly_preview_jsonintCOGO point groups (M8 cont.)
assembly_preview_json_exintSuperelevation preview (yucad3d#109 phase 2d-2). assembly_preview_json_ex = assembly_preview_json with a superelevation context: the signed cross-fall the ba…
assembly_remove_atintCOGO point groups (M8 cont.)
assembly_remove_nodeintCOGO point groups (M8 cont.)
assembly_reparentintCOGO point groups (M8 cont.)
assembly_set_inputintCOGO point groups (M8 cont.)
assembly_set_node_fieldintCOGO point groups (M8 cont.)
assembly_sketch_linkintCOGO point groups (M8 cont.)
assembly_sketch_moveintCOGO point groups (M8 cont.)
assembly_sketch_pointintSketch gestures -- the desktop FlowSketchCanvas contract over the ABI, so a canvas (web or plugin) draws and the GRAPH rules mint the nodes. ref names the …
assembly_sketch_shapeintCOGO point groups (M8 cont.)
assembly_super_setintCOGO point groups (M8 cont.)
assembly_switch_case_addintCOGO point groups (M8 cont.)
assembly_switch_case_removeintCOGO point groups (M8 cont.)
assembly_target_removeintCOGO point groups (M8 cont.)
assembly_target_setintTargets + Switch cases + reparent (yucad3d#109 phase 2c). assembly_target_set declares-or-updates a target parameter by name (kind 0 Surface / 1 Offset / 2 E…
assembly_update_linkintCOGO point groups (M8 cont.)
assembly_update_pointintNode update / delete (yucad3d#109 phase 2a) -- by-NAME addressing (container bodies are searched too). The update faces take the FULL editable field set the …
assembly_update_shapeintCOGO point groups (M8 cont.)
audit_issueintCOGO point groups (M8 cont.)
audit_runuint32_tDesign audit at the document's active standard + design speed. audit_run recomputes and caches the issue list for this document; audit_issue reads the cached…
cogo_dir_dir_pointintCOGO point groups (M8 cont.)
cogo_dist_dist_pointsintCOGO point groups (M8 cont.)
cogo_interpolate_pointsintCOGO point groups (M8 cont.)
cogo_slope_distance_pointintCOGO point groups (M8 cont.)
cogo_station_offset_pointintCOGO point tools (yucad3d-web#36) -- APPEND-ONLY, probe with YU3D_HOST_HAS. The desktop Points menu over the algo/Cogo math: each creates a point group (grou…
corridor_get_region_blendintCorridor Region Blend faces (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. The length over which adjacent regions' cross-sections taper into each ot…
corridor_meshintTessellate a corridor into its display/earthwork TIN — the SAME builder the desktop Corridor Surface command uses (algo::build_corridor_surface, sections eve…
corridor_plan_jsonintcorridor_plan_json (yucad3d-web#20) -- APPEND-ONLY, probe with YU3D_HOST_HAS. The plan-view corridor footprint the desktop canvas draws (signed pavement exte…
corridor_set_named_targetintcorridor_set_named_target (yucad3d#162) -- APPEND-ONLY, probe with YU3D_HOST_HAS. Binds a FlowTarget NAME on the corridor to an AlignmentNode: kind 0 = Offse…
corridor_set_region_blendintCOGO point groups (M8 cont.)
corridor_set_regionsintcorridor_set_regions — rebuild one baseline's region layout at ends (n_ends region end stations, m) with PRESERVE-UNLESS- OVERRIDDEN bindings: assemblies =…
corridor_set_super_overrideintCOGO point groups (M8 cont.)
corridor_set_widening_overrideintCOGO point groups (M8 cont.)
corridor_super_jsonintSuperelevation Editor faces (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. corridor_super_json seeds the editor table (override rows when set, else …
corridor_widening_jsonintCurve Widening Editor faces (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS; the widening mirror of the superelevation trio. corridor_widening_json re…
crs_search_jsonintcrs_search_json (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. The PROJ catalogue behind the Coordinate System dialog: {"total":N,"items":[[auth_cod…
design_standard_jsonintCOGO point groups (M8 cont.)
distance_inquiry_jsonintdistance_inquiry_json (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. Grid vs ground distance between two projected points (setting-out): geodesy fro…
doc_can_redointCOGO point groups (M8 cont.)
doc_can_undointCOGO point groups (M8 cont.)
doc_diff_rowintCOGO point groups (M8 cont.)
doc_diff_runint---- version diff (yucad3d-web#3) --------------------------------- APPEND-ONLY vtable -- probe with YU3D_HOST_HAS. doc_diff_run compares THIS document (the …
doc_import_dxfintdoc_import_dxf (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. The import counterpart doc_save_dxf never had: algo::import_dxf on path, every produ…
doc_redointCOGO point groups (M8 cont.)
doc_save_dxfintCOGO point groups (M8 cont.)
doc_save_glbintCOGO point groups (M8 cont.)
doc_save_landxmlintDocument-level exports: LandXML 1.2, glTF binary (.glb), DXF R2000. Return 1 on success.
doc_set_crsintCOGO point groups (M8 cont.)
doc_set_design_speedintCOGO point groups (M8 cont.)
doc_set_design_standardint---- project configuration + design/analysis faces (#87 batch 3) -- APPEND-ONLY -- probe with YU3D_HOST_HAS. The document-level settings the analysis face RE…
doc_set_road_classintCOGO point groups (M8 cont.)
doc_set_road_typeintDesign Standard dialog faces (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. doc_set_road_type completes the write set (standard/speed/class existed;…
doc_undointUndo face (appended — guard with YU3D_HOST_HAS). Every mutation above is one undoable edit on the host's stack; these step it. Return 1 if a step happened (0…
earthworks_jsonintCOGO point groups (M8 cont.)
grading_createintgrading_create — grade from a footprint alignment to a target: method 0 = to surface (target_surface NULL/empty = the first surface), 1 = to elevation, 2 = t…
grid_list_jsonintGrid System faces (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. grid_list_json reads every grid system with its full state (JSON, size-then-fetch).…
grid_system_applyintCOGO point groups (M8 cont.)
ifc_exportintCOGO point groups (M8 cont.)
ifc_importint---- IFC face (yucad3d#12) ---------------------------------------- APPEND-ONLY vtable -- probe every field with YU3D_HOST_HAS. These are NULL in hosts built…
ifc_model_batch_countuint32_tCOGO point groups (M8 cont.)
ifc_model_batch_infointCOGO point groups (M8 cont.)
ifc_model_get_meshintCOGO point groups (M8 cont.)
ifc_model_mesh_countsintCOGO point groups (M8 cont.)
ifc_model_object_countuint32_tCOGO point groups (M8 cont.)
ifc_model_object_infointCOGO point groups (M8 cont.)
ifc_model_object_propintCOGO point groups (M8 cont.)
junction_createint---- road-design creation faces (yucad3d#87 batch 2) -------------- APPEND-ONLY -- probe with YU3D_HOST_HAS. Every function maps 1:1 onto the engine entry po…
junction_create_multilegintCOGO point groups (M8 cont.)
log_clearvoidlog_clear (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. Empties the process EventLog (the Event Viewer's Clear button); log_count reads 0 afterwards.
log_countuint32_tThe process EventLog -- run_command outcomes (warnings, sweep summaries) land here. severity: 0 info, 1 warning, 2 error.
log_entryintCOGO point groups (M8 cont.)
material_qto_jsonintmaterial_qto_json (yucad3d-web#37): per-corridor Composer Shape volumes (ring areas + average end area, the QTO service) — corridor "" = every corridor. Empt…
node_property_countuint32_tProperty ENUMERATION for a generic consumer UI — the same field list the desktop Properties dock renders (data::PropertyApi providers). Query ONE index at a …
node_property_infointCOGO point groups (M8 cont.)
parts_bakeintBake a family into a triangle mesh. param_names/param_values are n_params overrides by parameter identifier (NULL/0 = family defaults); deflection <= 0 = 0.0…
parts_bake_getuint32_tCOGO point groups (M8 cont.)
parts_export_stepintExport the baked B-rep solid as STEP AP214 -- the real OCCT solid, not the triangulated mesh, so it round-trips into other CAD. Same override semantics as pa…
parts_export_stlintparts_export_stl (yucad3d#119, batch 6) -- APPEND-ONLY, probe with YU3D_HOST_HAS. Same contract as parts_export_step, but the output is a binary STL of the b…
parts_family_countuint32_t---- Part Builder families (yucad3d#87 batch 4) ------------------- APPEND-ONLY -- probe with YU3D_HOST_HAS. Families are PROCESS state (a name-keyed registr…
parts_family_createintCOGO point groups (M8 cont.)
parts_family_deleteintCOGO point groups (M8 cont.)
parts_family_duplicateintCOGO point groups (M8 cont.)
parts_family_import_baseintCOGO point groups (M8 cont.)
parts_family_infointCOGO point groups (M8 cont.)
parts_family_jsonintPart Builder AUTHORING (yucad3d#117) -- the desktop window's edits as faces over the process registry. parts_family_json writes the family structure (params …
parts_family_loadint.yu3dpart file round trip. load parses the file and registers the family (name-keyed -- an existing family of the same name is replaced) and returns its name…
parts_family_publishintCOGO point groups (M8 cont.)
parts_family_renameintCOGO point groups (M8 cont.)
parts_family_saveintCOGO point groups (M8 cont.)
parts_family_set_categoryintPart Builder catalog management, batch 3 (yucad3d#119) -- APPEND-ONLY, probe with YU3D_HOST_HAS. These manage the family's CATALOG entry (registry + its .yu3…
parts_family_set_filletintCOGO point groups (M8 cont.)
parts_family_validateintCOGO point groups (M8 cont.)
parts_param_addintPart Builder parameter editing + expression validation, batch 4 (yucad3d#119) -- APPEND-ONLY, probe with YU3D_HOST_HAS. parts_param_add appends a parameter (…
parts_param_infointCOGO point groups (M8 cont.)
parts_param_removeintCOGO point groups (M8 cont.)
parts_param_set_valueintCOGO point groups (M8 cont.)
parts_param_updateintCOGO point groups (M8 cont.)
parts_ref_mesh_getuint32_tCOGO point groups (M8 cont.)
parts_ref_mesh_loadintDisplay-reference mesh (yucad3d#119, batch 7) -- APPEND-ONLY, probe with YU3D_HOST_HAS. parts_ref_mesh_load reads an STL (binary or ASCII) or OBJ file with t…
parts_step_addintCOGO point groups (M8 cont.)
parts_step_apply_gripintCOGO point groups (M8 cont.)
parts_step_boundsintPart Builder grip editing + base-solid import, batch 5 (yucad3d#119) -- APPEND-ONLY, probe with YU3D_HOST_HAS. parts_step_bounds bakes step index in isolat…
parts_step_moveintPart Builder authoring, batch 2 (yucad3d#119) -- APPEND-ONLY, probe with YU3D_HOST_HAS. parts_step_move reorders the step program (removes from, reinserts …
parts_step_removeintCOGO point groups (M8 cont.)
parts_step_set_enabledintCOGO point groups (M8 cont.)
parts_step_updateintCOGO point groups (M8 cont.)
pointcloud_classify_groundintPCL progressive-morphological ground classification. Writes ASPRS class 2 (ground) / 1 (unclassified) onto the cloud as one edit; out_ground (nullable) gets …
pointcloud_create_from_lasintImport a LAS/LAZ file (path form — desktop / server-local files). stride keeps every Nth point (0/1 = all). Returns 1 and fills out_uuid (+ optional out_ke…
pointcloud_create_from_las_bytesintSame import from an in-memory file image (daemon uploads).
pointcloud_get_classificationuint32_tPer-point ASPRS classification bytes (same stride semantics). Returns 0 when the cloud is unclassified.
pointcloud_get_pointsuint32_tCopies up to max_pts xyz triples starting at every strideth point (0/1 = all) and returns the count written — the display path asks with a stride that land…
pointcloud_get_rgbuint32_tPer-point RGB, 3 bytes each (same stride semantics). Returns 0 when the source carried no colour.
pointcloud_point_countuint32_tCOGO point groups (M8 cont.)
pointcloud_remove_outliersintPCL statistical outlier removal (mean_k neighbours, stddev_mult).
pointcloud_to_surfaceintGround points -> a new SurfaceNode (algo::surface_from_cloud: classification (running the ground filter if absent), voxel thinning at thin_leaf_m, then the s…
pointcloud_voxel_thinintVoxel thinning: keeps one point per leaf_m cell (attributes follow). One undoable edit; out_kept (nullable) gets the surviving count.
pointgroup_createintCreate a point group (n x/y/z triples). Per-point name (COGO description) + feature code are sparse — set them with pointgroup_set_point_meta (null/empty lea…
pointgroup_get_pointsuint32_tCOGO point groups (M8 cont.)
pointgroup_point_codeconst char*COGO point groups (M8 cont.)
pointgroup_point_countuint32_tCOGO point groups (M8 cont.)
pointgroup_point_nameconst char*COGO point groups (M8 cont.)
pointgroup_set_point_metaintCOGO point groups (M8 cont.)
points_along_alignmentintCOGO point groups (M8 cont.)
points_connect_by_codeintpoints_connect_by_code (yucad3d-web#38): feature lines from a point group's coded points — the desktop Connect by Feature Code verbatim: per code (>= 2 point…
points_on_gridintCOGO point groups (M8 cont.)
profile_reportintprofile_report (yucad3d#64 slice 2): the design-profile PVI table (station / elevation / grades / A% / curve L / K / Crest-Sag / VPC-VPT / high-low point) fo…
roundabout_createintroundabout_create — the standards-seeded roundabout (VSS 40 263): icd / ring_width / entry_r / exit_r 0 = seed from the standard's rb.* data. flags = YU3D_RB…
samplelines_createintsamplelines_create — a SampleLineGroup along an alignment (interval + half-widths). existing / design surface uuids are optional (NULL/empty) -- the QTO / se…
samplelines_jsonintCOGO point groups (M8 cont.)
scale_report_jsonintscale_report_json (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. The Scale Factor Report dataset for an alignment: header stats (grid/ground lengths…
section_jsonintsection_json (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. The Cross Section dock's payload: ground swath + corridor template + design CL at `stati…
section_view_jsonintSections-tab faces (yucad3d-web#27) -- APPEND-ONLY, probe with YU3D_HOST_HAS. section_view_json is section_json's rich sibling (the desktop Sections tab's ex…
sight_analyzeintsight_analyze — run the sight-distance sweep along a road alignment against every surface in the document (plus the road's own baked corridor surfaces when i…
sight_bandintCOGO point groups (M8 cont.)
sight_band_countuint32_tThe latest sight-distance sweep cached per alignment (filled by road.sight.analyze / the desktop dialog).
speed_bands_deriveintspeed_bands_derive — derive the V_P design-speed bands from the alignment's geometry with the document's design standard and store them on the node. v_a_kmh …
standards_countuint32_t---- design-standard data management (yucad3d#87 batch 6) --------- APPEND-ONLY -- probe with YU3D_HOST_HAS. Standards data is PROCESS state (an id-keyed reg…
standards_import_c3dintCOGO point groups (M8 cont.)
standards_infointCOGO point groups (M8 cont.)
standards_load_dirintCOGO point groups (M8 cont.)
standards_load_fileintstandards_load_file registers one yu3dDesignStandard XML (id-keyed -- a re-load of the same id replaces) and returns its id. standards_load_dir loads every *…
standards_save_fileintCOGO point groups (M8 cont.)
staoffset_reportintstaoffset_report (yucad3d#64 slice 4): the stakeout listing — rows at interval_m (0.5 m floor) plus every element joint and the exact end (key rows flagged…
super_diagram_jsonintsuper_diagram_json (yucad3d-web#28): the Layout sheet's e(station) curve with the desktop rule whole — a corridor on this alignment answers with its ACTIVE s…
super_reportintsuper_report (yucad3d#64 slice 3): the superelevation deliverable for one corridor — the applied (station, rate) diagram plus one zone row per circular curve…
super_runoff_jsonintCOGO point groups (M8 cont.)
superelevation_designintsuperelevation_design — standard-aware runoff for the corridor's alignment (e_max <= 0 = the loaded standard's value for the document's speed / road class), …
surface_clear_boundariesintCOGO point groups (M8 cont.)
surface_create_from_textintSurface from raw point-file TEXT (CSV/XYZ/PTS/ASC — the desktop import rules: '#'/';' comments, commas/tabs as whitespace). order picks the column layout: …
surface_cut_fillintCut/fill volumes between two surface NODES (midpoint grid at cell_m; <= 0 falls back to 1 m). Returns 0 when either uuid is not a surface with data.
surface_elevation_atintsurface_elevation_at (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. Samples ONE surface's TIN at (x,y) — the per-surface counterpart of doc_ground_e…
surface_history_jsonintSurface History / Style faces (yucad3d#125) -- APPEND-ONLY, probe with YU3D_HOST_HAS. surface_history_json lists the definition operations (oldest first); su…
surface_mergeintsurface_merge triangulates the union of two surfaces' points into a NEW surface node (the inputs stay). points_along_alignment samples an alignment into a po…
surface_revert_historyintCOGO point groups (M8 cont.)
surface_set_boundaryint---- surface clipping boundaries + Civil 3D .pkt (yucad3d#87) ----- APPEND-ONLY -- probe with YU3D_HOST_HAS. surface_set_boundary sets the OUTER clipping rin…
surface_set_styleintCOGO point groups (M8 cont.)
surface_style_jsonintCOGO point groups (M8 cont.)
surface_style_save_sharedintCOGO point groups (M8 cont.)
view_frames_createintView frames (yucad3d#58 slice 1) -- APPEND-ONLY, probe with YU3D_HOST_HAS. view_frames_create places a ViewFrameGroup node under the Sheets group: frames of …
view_frames_jsonintCOGO point groups (M8 cont.)
widening_transition_jsonintCOGO point groups (M8 cont.)

Payload writer

Append a node's own bytes to its payload frame during save. The host frames and versions the container.

FunctionReturnsPurpose
w_f64voidwriter: append to the node's payload frame
w_strvoidwriter: append to the node's payload frame
w_u32voidwriter: append to the node's payload frame
w_u8void---- writer: append to the node's payload frame ----

Payload reader

Read those bytes back during load. Every reader returns success/failure — a short read must fail the node, not guess.

FunctionReturnsPurpose
r_f64intreader: return 1 on success, 0 on failure. r_str returns a pointer to host-owned memory valid only until the NEXT reader call — copy out what you need immedi…
r_strconst char*reader: return 1 on success, 0 on failure. r_str returns a pointer to host-owned memory valid only until the NEXT reader call — copy out what you need immedi…
r_u32intreader: return 1 on success, 0 on failure. r_str returns a pointer to host-owned memory valid only until the NEXT reader call — copy out what you need immedi…
r_u8int---- reader: return 1 on success, 0 on failure. r_str returns a pointer to host-owned memory valid only until the NEXT reader call — copy out what you need i…

Plan rendering

Emit plan-view geometry in world metres; the canvas owns zoom, styling and picking.

FunctionReturnsPurpose
plan_add_markervoidplan-view render sink (world metres; colours linear 0..1; *_px are device-independent screen pixels, zoom-invariant)
plan_add_segmentvoid---- plan-view render sink (world metres; colours linear 0..1; _px are device-independent screen pixels, zoom-invariant) ----
plan_add_textvoidplan-view render sink (world metres; colours linear 0..1; *_px are device-independent screen pixels, zoom-invariant)
plan_world_per_pixeldoubleplan-view render sink (world metres; colours linear 0..1; *_px are device-independent screen pixels, zoom-invariant)

3D rendering

Emit 3D geometry; the scene manager turns it into actors it tracks for selection and removal.

FunctionReturnsPurpose
scene_add_linesvoid---- 3D-view render sink. xyz is n_pts (x,y,z) triples; index arrays reference vertices by triple index. ----
scene_add_trianglesvoid3D-view render sink. xyz is n_pts (x,y,z) triples; index arrays reference vertices by triple index.

Picking

Tag emitted geometry so a click resolves to a sub-entity of the node rather than the whole node.

FunctionReturnsPurpose
register_summaryvoid---- register a read-only summary shown in the Properties dock for this node type. ----