CommonObject

References
Base class for .NET classes that wrap C++ unmanaged Rhino classes.

Constructors

CommonObject

#
protected CommonObject()
Allows construction from inheriting classes.

CommonObject

#
protected CommonObject(SerializationInfo info, StreamingContext context)
Protected constructor for internal use.
info (SerializationInfo)Serialization data.
context (StreamingContext)Serialization stream.

Finalizer

~CommonObject

#
~CommonObject()
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().

Properties

Disposed

#Since v6.0
public bool Disposed { get; }
Indicates if this object has been disposed or the document it originally belonged to has been disposed.

HasUserData

#Since v5.0
public bool HasUserData { get; }
Gets true if this class has any custom information attached to it through UserData.

IsDocumentControlled

#Since v5.0
public virtual bool IsDocumentControlled { get; }
If true this object may not be modified. Any properties or functions that attempt to modify this object when it is set to "IsReadOnly" will throw a NotSupportedException.

IsValid

#Since v5.0
public virtual bool IsValid { get; }
Tests an object to see if it is valid.

PerformCorruptionTesting

#Since v6.10
public static bool PerformCorruptionTesting { get; set; }
Used to test ON_Object* pointers to see if they are a brep or mesh that is corrupt enough to crash Rhino.

UserData

#Since v5.0
public UserDataList UserData { get; }
List of custom information that is attached to this class.

UserDictionary

#Since v5.0
public ArchivableDictionary UserDictionary { get; }
Dictionary of custom information attached to this class. The dictionary is actually user data provided as an easy to use shareable set of information.

Methods

ComputeMemoryEstimate

#Since v9.0
[CLSCompliant(false)] [ConstOperation] public static uint ComputeMemoryEstimate(CommonObject obj)
Computes an estimate of the number of bytes that this object is using in memory.
Remarks: This is the same as calling GeometryBase.MemoryEstimate, but works for all CommonObject derived classes.
obj (CommonObject)
An estimated memory footprint.

ConstructConstObject

#
protected void ConstructConstObject(object parentObject, int subobjectIndex)
Assigns a parent object and a sub-object index to this.
parentObject (object)The parent object.
subobjectIndex (int)The sub-object index.

Dispose

#Since v5.0
public void Dispose()
Actively reclaims unmanaged resources that this instance uses.

Dispose

#
protected virtual void Dispose(bool disposing)
For derived class implementers.

This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method.

You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.

Also, you must call the base virtual method within your overriding method.

disposing (bool)true if the call comes from the Dispose() method; false if it comes from the Garbage Collector finalizer.

EnsurePrivateCopy

#Since v5.0
public void EnsurePrivateCopy()
If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.

FromBase64String

#Since v7.0
public static CommonObject FromBase64String(int archive3dm, int opennurbs, string base64Data)
Create a CommonObject instance from a Base64 encoded string. This is typically the values used when passing common objects around as JSON data
archive3dm (int)
opennurbs (int)
base64Data (string)

FromJSON

#Since v7.0
public static CommonObject FromJSON(Dictionary<string, string> jsonDictionary)
Create a CommonObject instance from a JSON dictionary
jsonDictionary (Dictionary<string, string>)

FromJSON

#Since v7.5
public static CommonObject FromJSON(string json)
Create a CommonObject instance from a JSON string
json (string)

GetObjectData

#Since v5.0
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)] public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
info (SerializationInfo)The System.Runtime.Serialization.SerializationInfo to populate with data.
context (StreamingContext)The destination (see System.Runtime.Serialization.StreamingContext) for this serialization.

IsValidWithLog

#Since v5.0
public bool IsValidWithLog(out string log)
Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.
log (out string)A textual log. This out parameter is assigned during this call.
true if this object is valid; false otherwise.

NonConstOperation

#
protected virtual void NonConstOperation()
For derived classes implementers.

Defines the necessary implementation to free the instance from being constant.

OnSwitchToNonConst

#
protected virtual void OnSwitchToNonConst()
Is called when a non-constant operation first occurs.

ToJSON

#Since v7.0
public string ToJSON(SerializationOptions options)
Create a JSON string representation of this object
options (SerializationOptions)